没有gl_LightSource [0]的照明

时间:2013-03-31 19:04:14

标签: java opengl graphics glsl lwjgl

gl_LightSource[0].position.xyz中撰写时,GLSL相当于什么?换句话说,我如何在vec3中使用vec4(或GLSL}并对OpenGL应用于gl_LightSource[0].position应用相同的转换?我可以使用mat4吗?

1 个答案:

答案 0 :(得分:2)

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

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