我正在创建使用正交视图(2D)的游戏。我试图理解顶点着色器中gl_Position
的值。
根据我的理解x
和y
坐标转换为-1到1范围内的屏幕位置,但我对z
和{{1}的作用感到困惑我只知道w
值应该设置为w
目前我只使用1.0
,其中gl_Position.xyw = vec3(Position, 1.0);
是2D顶点位置
我使用的是OpenGL 3.2。
答案 0 :(得分:4)
请记住,openGL也必须适用于3D,并且比仅为2D创建新界面更容易公开3D细节。
Z分量是设置顶点的深度,-1,1(在透视分割后)的点不会被绘制,对于-1,1之间的值,它将被检查深度缓冲区以查看是否片段在一些先前绘制的三角形后面,如果它应该被隐藏,则不绘制它。
w分量用于透视分割,并允许GPU以透视正确的方式插值。否则纹理看起来很怪异。