glRotatef 是否也旋转法线方向?
Does glRotatef rotate the normal directions as well?
我正在尝试使用 glRotatef 旋转 space 中的特定对象。我不确定它是如何在引擎盖下工作的,所以我不确定我为对象顶点设置的法向量是否会随着顶点坐标一起旋转。我只需要知道它是否确实也旋转了法线。
简答:是的,否则对程序员来说真的很痛苦。
更长:在经典的 OpenGL 中,不是带有着色器的现代 3/4,顶点和法线受当前 MODELVIEW 矩阵的影响。 (颜色和纹理坐标不是。)
所以除了旋转还有平移,平移没有效果,因为法线是矢量;和缩放,可以改变法线的长度,从而破坏你的光照计算。因此,如果您要缩放发光的模型,您可能需要
glEnable(GL_NORMALIZE)
我正在尝试使用 glRotatef 旋转 space 中的特定对象。我不确定它是如何在引擎盖下工作的,所以我不确定我为对象顶点设置的法向量是否会随着顶点坐标一起旋转。我只需要知道它是否确实也旋转了法线。
简答:是的,否则对程序员来说真的很痛苦。
更长:在经典的 OpenGL 中,不是带有着色器的现代 3/4,顶点和法线受当前 MODELVIEW 矩阵的影响。 (颜色和纹理坐标不是。) 所以除了旋转还有平移,平移没有效果,因为法线是矢量;和缩放,可以改变法线的长度,从而破坏你的光照计算。因此,如果您要缩放发光的模型,您可能需要
glEnable(GL_NORMALIZE)