GLSL 顶点着色器 gl_Position 值

GLSL vertex shader gl_Position value

我正在创建使用正交视图 (2D) 的游戏。我正在尝试了解顶点着色器中 gl_Position 的值。

据我了解,xy 坐标转换为 -1 到 1 范围内的屏幕位置,但我对 zw,我只知道w值应该设置为1.0

目前我只使用gl_Position.xyw = vec3(Position, 1.0);,其中Position是二维顶点位置

我使用 OpenGL 3.2。

请记住,openGL 也必须适用于 3D,公开 3D 细节比为 2D 创建新界面更容易。

Z 组件用于设置顶点的深度,-1,1 之外的点(透视分割后)将不会被绘制,对于 -1,1 之间的值,将根据深度缓冲区检查查看片段是否在某个先前绘制的三角形后面,如果应该隐藏则不绘制它。

w 分量用于透视除法,并允许 GPU 以正确的透视方式插入值。否则纹理看起来很奇怪。