0

gl_LightSource[0].position.xyz写入时相当于什么GLSL?换句话说,我将如何采用vec3(或vec4GLSL并对其应用 OpenGL 适用的相同转换gl_LightSource[0].position?有mat4我可以用的吗?

4

1 回答 1

2

你可以做任何你喜欢的事情。这就是着色器的好处。为自己定义一套描述灯光的制服。它的位置可以在您想要的任何空间中,您只需要以某种方式应用正确的转换即可。

着色器都是关于自由选择的,你可以做任何最适合你的事情。固定功能 OpenGL 在眼睛/视图空间中进行照明计算,即在模型视图变换之后。为此,它会在您调用glLightfv(GL_LIGHT…, GL_POSITION, …). 然后在绘制几何图形时,在应用模型视图变换之后,在视图空间中执行光照计算。

于 2013-03-31T19:09:57.770 回答