我是GLSL的初学者。我正在阅读一个顶点着色器代码,我没有透露这部分代码:
out vec3 position;
...
gl_Position=gl_ModelViewProjectionMatrix*gl_Vertex;
position=vec3(gl_ModelViewMatrix*gl_Vertex);
gl_ModelViewProjectionMatrix和gl_ModelViewMatrix有什么区别?
gl_Position和position之间有什么区别?
答案 0 :(得分:1)
正如您可能怀疑的那样,gl_ModelViewProjectionMatrix是gl_ModelViewMatrix,增加了投影 - 也就是透视相机失真。
gl_Position是一个预定义的变量,意思是“这个顶点着色器的投影结果”(所有顶点着色器都需要为gl_Position赋值),而值“position”是一个额外的程序员定义的值,它出现在骑(为什么不可能说,取决于整个着色器)