Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl GLSL顶点着色器gl_位置值_Opengl_Glsl_Opengl 3 - Fatal编程技术网

Opengl GLSL顶点着色器gl_位置值

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之间的值,将根

我正在创建使用正交视图(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之间的值,将根据深度缓冲区进行检查,以查看片段是否位于先前绘制的某个三角形后面,如果应该隐藏,则不绘制


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

哦,我没有想到在这个阶段需要深度。谢谢你的解释!