GLSL 顶点着色器 gl_Position 值
GLSL vertex shader gl_Position value
我正在创建使用正交视图 (2D) 的游戏。我正在尝试了解顶点着色器中 gl_Position
的值。
据我了解,x
和 y
坐标转换为 -1 到 1 范围内的屏幕位置,但我对 z
和 w
,我只知道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 以正确的透视方式插入值。否则纹理看起来很奇怪。
我正在创建使用正交视图 (2D) 的游戏。我正在尝试了解顶点着色器中 gl_Position
的值。
据我了解,x
和 y
坐标转换为 -1 到 1 范围内的屏幕位置,但我对 z
和 w
,我只知道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 以正确的透视方式插入值。否则纹理看起来很奇怪。