1.gl_Vertex
和 gl_Position的区别
在OpenGL中,gl_Vertex.z
和 gl_Position.z
是两个不同的概念,分别出现在不同的阶段和上下文中:
-
gl_Vertex.z
:gl_Vertex
是一个内置变量,通常在顶点着色器中使用,表示当前处理的顶点的原始位置。gl_Vertex.z
是该顶点在模型空间或局部空间中的 z 坐标,通常是未经过任何变换的原始坐标。- 这个值在顶点着色器中可以被用来进行各种计算,比如光照、变换等。
-
gl_Position.z
:gl_Position
是一个四维向量,表示顶点在裁切空间中的位置。gl_Position.z
是经过模型变换、视图变换和投影变换后的 z 坐标,通常用于确定该顶点在裁切空间中的深度。- 这个值会影响到后续的裁切和深度测试,最终决定该顶点是否在视口内。