2015-04-01 252 views
1

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

据我了解xy坐标转换为屏幕范围位置-1到1之间,但我与zw的作用相当混乱,我只知道w值应设置为1.0

目前我只是用gl_Position.xyw = vec3(Position, 1.0);,其中Position是2D的顶点位置

我使用OpenGL 3.2。

回答

3

请记住,openGL还必须适用于3D,并且更容易暴露3D细节,而不是为2D创建新界面。

Z分量用于设置顶点的深度,-1,1之外的点(在透视分割之后)将不会绘制,-1,1之间的值将根据深度缓冲区进行检查以查看如果片段位于之前绘制的三角形的后面,并且不应该绘制它,如果它应该隐藏。

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

+0

哦,我现在没有想到深度需要。感谢您的解释! – Magik6k 2015-04-01 16:27:40