OpenGL通常是“向上”方向吗?

时间:2018-10-08 12:16:26

标签: c++ opengl 3d coordinate-systems glm-math

我最近关注了这个站点:https://learnopengl.com/,以学习OpenGL,然后发现在glm :: lootAt函数中,文章说第三个参数通常是(0.0,1.0,0.0),但是为什么呢?我想描述像(x,y)和z为高度(up)的项目的位置,不是更直观吗?

顺便说一句,我在Blender中发现,z也是“向上”方向。所以我想知道为什么我们使用这种演示(或者我是否可以使用自己的样式?)。

1 个答案:

答案 0 :(得分:2)

首先:一切都与约定有关。从数学的角度来看,您甚至可以使用x-up,它会很好(尽管除非您有充分的理由使用它,否则我不建议您使用它)。

最重要的是,它是以一种一致的方式遵守您要使用的约定,因此您的值和计算才有意义。无论您决定使用y还是z作为向上向量,都需要在整个代码中都坚持使用。

关于为什么y向上,您还可以“直观地”认为xy是屏幕上的侧面和上方矢量,z (第三维)将二维空间的深度添加到这两个维度后。

最终,您可以使用任何您想使用的东西,但是只要您坚持使用它,并且您还要考虑整个管道。如果您(或其他人)在Blender或任何其他3D建模软件中创建模型,则如果模型空间中的向上矢量与您使用的不同,则必须考虑到这一点。