Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
gl_LightSource[0].position.xyz写入时相当于什么GLSL?换句话说,我将如何采用vec3(或vec4)GLSL并对其应用 OpenGL 适用的相同转换gl_LightSource[0].position?有mat4我可以用的吗?
gl_LightSource[0].position.xyz
GLSL
vec3
vec4
gl_LightSource[0].position
mat4
你可以做任何你喜欢的事情。这就是着色器的好处。为自己定义一套描述灯光的制服。它的位置可以在您想要的任何空间中,您只需要以某种方式应用正确的转换即可。
着色器都是关于自由选择的,你可以做任何最适合你的事情。固定功能 OpenGL 在眼睛/视图空间中进行照明计算,即在模型视图变换之后。为此,它会在您调用glLightfv(GL_LIGHT…, GL_POSITION, …). 然后在绘制几何图形时,在应用模型视图变换之后,在视图空间中执行光照计算。
glLightfv(GL_LIGHT…, GL_POSITION, …)