glRotatef 是不是也会旋转法线方向?

Posted

技术标签:

【中文标题】glRotatef 是不是也会旋转法线方向?【英文标题】:Does glRotatef rotate the normal directions as well?glRotatef 是否也会旋转法线方向? 【发布时间】:2019-09-24 23:06:09 【问题描述】:

我正在尝试使用 glRotatef 旋转空间中的特定对象。我不确定它是如何在引擎盖下工作的,所以我不确定我为对象顶点设置的法线向量是否会随着顶点坐标一起旋转。我只需要知道它是否实际上也旋转了法线。

【问题讨论】:

是的,确实如此。只有一个问题——如果你是新手,为什么不从不被弃用的风格开始呢?我看不出有什么理由去学习你永远无法使用的东西。 【参考方案1】:

简短回答:是的,否则对程序员来说真的很痛苦。

更长:在经典 OpenGL 中,不是带有着色器的现代 3/4,顶点和法线受到当前 MODELVIEW 矩阵的影响。 (颜色和纹理坐标不是。) 所以除了旋转还有平移,因为法线是向量,所以没有效果;和缩放,可以改变法线的长度,从而破坏你的光照计算。因此,如果您要缩放点亮的模型,您可能需要

glEnable(GL_NORMALIZE)

【讨论】:

以上是关于glRotatef 是不是也会旋转法线方向?的主要内容,如果未能解决你的问题,请参考以下文章

根据相机方向移动

Unity Shader 广告牌效果

glRotatef() 在 Opengl 中的工作很奇怪

GL10控制图形旋转

OpenGL使旋转函数给出向量

当 SLComposeViewController 加载时,即使我已将 Main UIViewController 固定为 Portrait,它也会旋转到设备方向