我最近关注了这个站点:https://learnopengl.com/,以学习OpenGL,然后发现在glm :: lootAt函数中,文章说第三个参数通常是(0.0,1.0,0.0),但是为什么呢?我想描述像(x,y)和z为高度(up)的项目的位置,不是更直观吗?
顺便说一句,我在Blender中发现,z也是“向上”方向。所以我想知道为什么我们使用这种演示(或者我是否可以使用自己的样式?)。
答案 0 :(得分:2)
首先:一切都与约定有关。从数学的角度来看,您甚至可以使用x
-up,它会很好(尽管除非您有充分的理由使用它,否则我不建议您使用它)。
最重要的是,它是以一种一致的方式遵守您要使用的约定,因此您的值和计算才有意义。无论您决定使用y
还是z
作为向上向量,都需要在整个代码中都坚持使用。
关于为什么y
向上,您还可以“直观地”认为x
和y
是屏幕上的侧面和上方矢量,z
(第三维)将二维空间的深度添加到这两个维度后。
最终,您可以使用任何您想使用的东西,但是只要您坚持使用它,并且您还要考虑整个管道。如果您(或其他人)在Blender或任何其他3D建模软件中创建模型,则如果模型空间中的向上矢量与您使用的不同,则必须考虑到这一点。