gpt4 book ai didi

opengl - 为什么归一化设备坐标系是左手的?

转载 作者:行者123 更新时间:2023-12-04 09:32:31 24 4
gpt4 key购买 nike

起初我想知道为什么 NDC 的范围是从 -1 到 1,而不是从 0 到 1。我想也许将原点放在中心是有用的。

但是为什么它使用左手坐标系呢?

可能是因为距离较远的物体的 Z 值更高吗?这对我来说是一个足够好的理由。

最佳答案

But why is it using a left-handed coordinate system?



让我们在该问题中添加“默认情况”。因为只需要更改它 glDepthRange(1.0f, 0.0f);现在你是右撇子了。是的,这是完全合法的 GL 语法;从来没有限制z附近的范围小于z附近的范围。

为什么默认是左撇子?也许 ARB 上的某个人喜欢这种方式。也许 ARB 上的某个人喜欢增加深度范围而不是减小深度范围,而左下角的方向使这变得很有必要。可能是因为 OpenGL 的前身 IRIX GL 就是这样做的,而 ARB 认为没有必要对其进行更改。

原因是无关紧要的;惯用手纯粹是一种符号上的方便。在某些地方,右撇子是有道理的。在其他情况下,左撇子是有道理的。而且由于它的更改很小,因此请使用适合您的方法。

It would then be consistent with everything else.



与其他一切一致吗?所有固定功能的东西都被删除了吗?

视口(viewport)变换都是由 OpenGL 在内部完成的,没有人能做到。您甚至不提供矩阵;您只需提供视口(viewport)和深度范围。所以从使用固定功能 GL 的人的角度来看,一切都是右手的。

唯一一次甚至出现用手习惯是在直接处理顶点着色器时,您必须知道剪辑空间的用手习惯是什么。在这种情况下,惯用手的变化是透视投影否定 Z 的简单函数。或者,如果您喜欢左手坐标,透视投影不否定 Z。或者再次,只需反转 glDepthRange现在你是右撇子了。

关于opengl - 为什么归一化设备坐标系是左手的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9384827/

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