将来自世界空间法线的viewspace(Transforming normals from worl

2019-10-19 18:43发布

比方说,我有我的世界空间法线,我想将它们转换成viewspace。 我该怎么办? 我已经试图通过viewProjection矩阵,并通过反演变换视图矩阵相乘他们,但都没有奏效。 蓝色通道(z轴)似乎缺少。 我很困惑。

Answer 1:

  1. 在固定管道无能为力它为您的工作

    正常工作的所有世界/对象变换应该是模型视图矩阵里面还有像一些先进的东西,将无法正常工作(即GL_PROJECTION矩阵滥用),但在大多数情况下,你没有看到的事情...

  2. 在着色器可以处理照亮你的自我,所以这是的方式

     point' = object_2_world_matrix * world_2_camera_matrix * projection_matrix * point vector' = object_2_world_matrix(with origin 0,0,0) * world_2_camera_matrix(with origin 0,0,0) * vector 


    object_2_world_matrix是表示渲染模型空间的变换矩阵
    world_2_camera_matrix反转表示摄像机空间变换矩阵
    Z轴通常为观看方向
    projection_matrix仅仅是投影矩阵(用于渲染...)

    可以使用任何来源矩阵(0,0,0)通过其设置12,13,14元素为零(元素是0,..,15

你没有删除矩阵的位置,其将到顶点的位置法线向量...这是古怪的原因...所以无论从。减去的结果矩阵的偏移或不偏移(由矩阵相乘origin = (0,0,0)



文章来源: Transforming normals from worldspace to the viewspace