gl_ModelViewProjectionMatrix vs gl_ModelViewMatrix

时间:2013-02-23 20:53:44

标签: glsl shader

我是GLSL的初学者。我正在阅读一个顶点着色器代码,我没有透露这部分代码:

out vec3 position;
...
gl_Position=gl_ModelViewProjectionMatrix*gl_Vertex; 
position=vec3(gl_ModelViewMatrix*gl_Vertex); 

gl_ModelViewProjectionMatrix和gl_ModelViewMatrix有什么区别?

gl_Position和position之间有什么区别?

1 个答案:

答案 0 :(得分:1)

正如您可能怀疑的那样,gl_ModelViewProjectionMatrix是gl_ModelViewMatrix,增加了投影 - 也就是透视相机失真。

gl_Position是一个预定义的变量,意思是“这个顶点着色器的投影结果”(所有顶点着色器都需要为gl_Position赋值),而值“position”是一个额外的程序员定义的值,它出现在骑(为什么不可能说,取决于整个着色器)