如何从滚动,俯仰和偏航中获取摄像机向量?

时间:2009-10-15 21:32:40

标签: opengl graphics 3d directx xna

我需要从滚动,俯仰和偏转角度(以度为单位)获得相机的向上矢量(以获得正确的外观)。我一直在尝试不同的事情几个小时而且没有运气:(。任何帮助都会受到赞赏!

2 个答案:

答案 0 :(得分:5)

滚动,俯仰和偏航定义3轴旋转。从这些角度你可以构造一个3x3变换矩阵来表示这种旋转(see here how
有了这个矩阵之后,你可以使用常规向上矢量,比如说(0,1,0),如果'up'是Y轴并将它与矩阵相乘。你会得到的是转换后的矢量。

修改 -
将转换应用于(0,1,0)与取中间行相同。矩阵的3行构成旋转系统的正交基础。请注意,3D图形API使用4x4矩阵。因此,要从3x3旋转矩阵中制作4x4矩阵,您需要在M [3] [3](角落)处添加“1”,并在其余部分添加零,如下所示:

r r r 0
r r r 0 
r r r 0
0 0 0 1

答案 1 :(得分:1)

这可能不会直接回答您的问题,尽管它可能仍有帮助。我有一个免费的XNA开源项目,可以创建一个调试终端,在游戏运行时覆盖它。您可以使用它来查找值,调用方法或其他任何内容。因此,如果您有一个转换矩阵,并且您希望在游戏运行时提取它的各个部分,那么您可以这样做。该项目可在此处找到: http://www.protohacks.net/xna_debug_terminal

我在你正在使用的数学方面没有太多专业知识,但希望Shoosh的帖子对此有所帮助。也许调试终端可以在尝试他的想法或遇到的任何其他未来问题时帮助你。