在我的教学openGL appl中,我在场景中有一些对象,当我点击其中一个时,我希望我的相机能够看到那个对象。在我确定点击的对象后,我计算相机的向上,向前和向右矢量,然后我需要能够计算相机的俯仰,偏航,滚动角度。但是我对如何做到这一点毫无头绪,所以任何帮助都会很棒。
答案 0 :(得分:1)
您实际上并不需要进行所有这些计算。只需使用glLookAt()
即可。它取得了相机的位置,你想要看的位置和向上矢量,并相应地定位了模型视图矩阵。
如果你真的想要这么做,请看看我的回答to this question。
答案 1 :(得分:1)
这是向后计算的问题。从front
向量,您应该能够相对轻松地推断yaw
和pitch
。
如果您的坐标系有x和z作为楼层
yaw = atan2(front.z, front.x);
可以通过标准化front
并使用asin
front.normalize();
pitch = asin(front.y);
如果我有时间,我会考虑计算roll
否则提出了使用gluLookAt