OpenGL通常"Up"方向?

OpenGL normally "Up" direction?

我最近关注这个网站:https://learnopengl.com/学习OpenGL,然后我发现在glm::lootAt函数中,文章说第三个参数通常是(0.0, 1.0, 0.0),但是为什么?我觉得用(x,y)来描述一个item的位置,z就是height(up),这样是不是更直观?

顺便说一句,我在Blender中发现,z也是"up"方向。所以我想知道为什么我们要用这样的展示方式(或者我用我自己的风格可以吗?)。

首先:一切都是关于约定的。从数学的角度来看,你甚至可以使用 x-up 并且它会很好(尽管我不会推荐它,除非你有充分的理由使用它)。

最重要的是,它是关于坚持您想要使用的约定,并以一致的方式使您的价值观和计算有意义。无论您决定使用 y 还是 z 作为向上向量,您都需要在整个代码中坚持这一点。

至于为什么 y-向上,你也可以认为 "intuitionally" xy 是屏幕上的侧向和向上向量,并且 "intuitionally" =12=],第三个维度,将深度添加到 2D space 当添加到这两个维度时。

最终你可以使用任何你想要的,但只要你坚持下去,并且你也负责整个管道。如果您(或其他人)在 Blender 或任何其他 3D 建模软件中创建模型,如果模型中的向上矢量 space 与您使用的不同,您将必须考虑到这一点。