1

从这个页面https://learnopengl.com/Getting-started/Camera我学习了如何将 Yaw 和 Pitch 角实现到 glm::lookAt 函数。但遗憾的是,我找不到任何关于如何将滚动角添加到函数的参考。

当我尝试实现它时,x 和 z 轴保持不变,并且不适应 Roll 旋转。

4

1 回答 1

0

首先确保您确实需要使用滚动来移动相机,因为除非您制作的相机跟随飞行的东西,否则这种情况并不常见。您通过围绕前矢量旋转向上矢量来更改滚动(这将是不变的),所以它应该看起来像

up.y = up.y * cos(rollAngle)
up.x = ...
up.z = ...

其中 x 和 z 将有 2 个项,具体取决于前向量的 x 和 z,类似于教程如何计算取决于偏航和俯仰的前向量您可能需要考虑像 Eigen 这样的线性代数库,因为它会照顾使用他们的 Transform api,您可能需要很容易地进行旋转和其他事情。

于 2020-11-23T23:07:25.860 回答