gpt4 book ai didi

opengl - GLSL gl_Position 中的第四维是什么?

转载 作者:行者123 更新时间:2023-12-04 12:06:39 29 4
gpt4 key购买 nike

我正在学习 OpenGL,目前我正在编写一个着色器,但我很困惑为什么 gl_Position变量是 vec4而不是 vec3 ,正如我所料。我当然希望这样做,因为它使用 3D 空间,而不是 4D。

我希望我至少对 gl_Position 的前三个字段的假设是正确的。确实是位置的 x、y 和 z 坐标。

如果我的问题不够清楚: gl_Position 的第四个字段是什么? .

顺便说一下,我使用的是 OpenGL 3.2 和 GLSL 1.5。

最佳答案

gl_PositionHomogeneous coordinates .在 orthographic projection第四部分 w是 1。由于 perspective projection ,该分量采用 1 以外的其他值。
gl_Position可以转换为Cartesian coordinate在标准化设备空间中由 Perspective divide .

vec3 ndc = gl_Position.xyz / gl_Position.w;
gl_Position是剪辑空间坐标。在剪辑空间中执行场景的剪辑。
如果 x,一个点在裁剪空间中, yz组件在倒置 w 定义的范围内组件和 w点齐次坐标的分量:
-w <=  x, y, z  <= w.

另见 Transform the modelMatrix

关于opengl - GLSL gl_Position 中的第四维是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49782148/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com