为什么法线会随相机旋转?

时间:2016-06-29 16:25:50

标签: opengl glsl shader

我为漫射闪电写了着色器 在顶点着色器中计算法线:法线= gl_NormalMatrix * gl_Normal;
但是,当我旋转相机时,法线也开始随相机旋转。如何解决?

1 个答案:

答案 0 :(得分:1)

您必须错误地生成普通矩阵。

NormalMatrix = transpose(inverse(ModelMatrix * ViewMatrix))

另外,除非你被迫使用gl_NormalMatrix和gl_Normal,否则你应该使用着色器制服和变量并自己计算矩阵而不是使用旧模型。

如果你不知道如何做到这一点,你应该找一个关于OpenGL 4的教程来学习可编程着色器管道。 OGLDev非常好。