Opengl GLSL顶点着色器gl_位置值
我正在创建使用正交视图(2D)的游戏。我正在试图理解顶点着色器中的Opengl GLSL顶点着色器gl_位置值,opengl,glsl,opengl-3,Opengl,Glsl,Opengl 3,我正在创建使用正交视图(2D)的游戏。我正在试图理解顶点着色器中的gl\u位置的值 据我所知,x和y坐标在-1到1的范围内转换到屏幕位置,但我对z和w的作用非常困惑,我只知道w值应该设置为1.0 目前我只使用gl_Position.xyw=vec3(Position,1.0),其中位置是二维顶点位置 我使用OpenGL 3.2。请记住,OpenGL也必须适用于3D,而且公开3D细节比为2D创建新界面更容易 Z组件用于设置顶点的深度,不绘制-1,1(透视分割后)之外的点,对于-1,1之间的值,将根
gl\u位置
的值
据我所知,x
和y
坐标在-1到1的范围内转换到屏幕位置,但我对z
和w
的作用非常困惑,我只知道w
值应该设置为1.0
目前我只使用gl_Position.xyw=vec3(Position,1.0)代码>,其中位置
是二维顶点位置
我使用OpenGL 3.2。请记住,OpenGL也必须适用于3D,而且公开3D细节比为2D创建新界面更容易
Z组件用于设置顶点的深度,不绘制-1,1(透视分割后)之外的点,对于-1,1之间的值,将根据深度缓冲区进行检查,以查看片段是否位于先前绘制的某个三角形后面,如果应该隐藏,则不绘制
w分量用于透视分割,允许GPU以透视正确的方式插值值。否则,纹理看起来很奇怪。哦,我没有想到在这个阶段需要深度。谢谢你的解释!