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" x
和 y
是屏幕上的侧向和向上向量,并且 "intuitionally" =12=],第三个维度,将深度添加到 2D space 当添加到这两个维度时。
最终你可以使用任何你想要的,但只要你坚持下去,并且你也负责整个管道。如果您(或其他人)在 Blender 或任何其他 3D 建模软件中创建模型,如果模型中的向上矢量 space 与您使用的不同,您将必须考虑到这一点。
我最近关注这个网站: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" x
和 y
是屏幕上的侧向和向上向量,并且 "intuitionally" =12=],第三个维度,将深度添加到 2D space 当添加到这两个维度时。
最终你可以使用任何你想要的,但只要你坚持下去,并且你也负责整个管道。如果您(或其他人)在 Blender 或任何其他 3D 建模软件中创建模型,如果模型中的向上矢量 space 与您使用的不同,您将必须考虑到这一点。