我正在显示一个场景,一切看起来都很好。 当我缩放对象时,我注意到光线变得不同(随着对象变大,颜色变深)。我知道我可以重新计算法线,但是有什么办法可以告诉opengl自动执行此操作吗?我正在使用opengles 2.缩放后顶点法线不正确
非常感谢。
我正在显示一个场景,一切看起来都很好。 当我缩放对象时,我注意到光线变得不同(随着对象变大,颜色变深)。我知道我可以重新计算法线,但是有什么办法可以告诉opengl自动执行此操作吗?我正在使用opengles 2.缩放后顶点法线不正确
非常感谢。
对象的缩放应该通过模型矩阵执行,因此对象的原始法向矢量不需要改变。在用模型矩阵变换模型时,还必须相应地变换法线。请参阅http://www.songho.ca/opengl/gl_normaltransform.html。
即使应用缩放,法线也不会改变。这意味着您不必每次重新计算法线。该问题很可能在您计算的正常矩阵中。确保正常矩阵(这是您的模型视图矩阵的逆和转置)具有缩放参数。
干杯!