Beispiel #1
0
        public override void UploadUBOandDraw(CameraData camera, UniformBlock ubo)
        {
            var modelMatrix     = this.Entity.Transform.GetLocalToWorldMatrix(camera.ViewPointPosition - Offset);
            var modelViewMatrix = modelMatrix * camera.GetRotationMatrix();

            ubo.model.modelMatrix               = modelMatrix;
            ubo.model.modelViewMatrix           = modelViewMatrix;
            ubo.model.modelViewProjectionMatrix = modelViewMatrix * camera.GetProjectionMatrix();
            ubo.model.worldPosition             = this.Entity.Transform.Position.ToVector3();
            ubo.modelUBO.UploadToGPU();
            Mesh.Draw(Material.RenderShader.HasTesselation);
        }
Beispiel #2
0
        public Matrix4 GetModelViewProjectionMatrix(CameraData camera)
        {
            if (camera == cachedInputGetModelViewProjectionMatrix)
            {
                return(cachedGetModelViewProjectionMatrix);
            }

            var modelMatrix               = this.Entity.Transform.GetLocalToWorldMatrix(camera.ViewPointPosition - Offset);
            var modelViewMatrix           = modelMatrix * camera.GetRotationMatrix();
            var modelViewProjectionMatrix = modelViewMatrix * camera.GetProjectionMatrix();

            cachedInputGetModelViewProjectionMatrix = camera;
            cachedGetModelViewProjectionMatrix      = modelViewProjectionMatrix;

            return(modelViewProjectionMatrix);
        }