我正在尝试在OpenGL中制作第一人称节目。
我已经使用GLM库进行计算,它只对View Matrix有lookAt()
函数。但是,函数参数会获取摄像机的位置以及它所查看内容的x, y, z
坐标。
我想将音高,偏航,滚动更改为x, y, z
。但是,互联网上似乎没有任何公式。
滚动被忽略,但是如何只使用俯仰和偏航给你x, y, z
坐标?
0, 0
返回0, 0, 1
0, pi
返回0, 1, 0
pi, 0
返回1, 0, 0
等。任何人都可以帮助计算所有值0 - 2pi
吗?
答案 0 :(得分:1)
为偏航,俯仰和滚转构建旋转矩阵,并将它们相乘。得到的乘积是一个矩阵,其旋转坐标系基矢量作为其列。但是,不保证向量是正交的。实际上,由于称为万向节锁的效果,可能会发生两个或全部三个变为共线的情况。万向节锁定也是你不应该使用欧拉旋转的原因。