1

我是 GLSL 的初学者。我正在阅读顶点着色器代码,但我不明白这部分代码:

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

gl_ModelViewProjectionMatrix 和 gl_ModelViewMatrix 有什么区别?

gl_Position 和 position 有什么区别?

4

1 回答 1

1

您可能会怀疑,gl_ModelViewProjectionMatrix 是 gl_ModelViewMatrix 加上投影 - 即透视相机失真。

gl_Position 是一个预定义的变量,意思是“这个顶点着色器的投影结果”(所有顶点着色器都需要为 gl_Position 分配一个值),而值“位置”是一个额外的程序员定义的值,伴随着骑行(为什么是不可能的,取决于整个shader)

于 2013-02-26T10:18:08.583 回答