如何限制垂直角度? FPS glm :: lookat相机?

我跟随本教程:http://www.opengl-tutorial.org/beginners-tutorials/tutorial-6-keyboard-and-mouse/,但我似乎无法限制垂直角我的相机以这种方式,所以我不能向后弯曲...如果我的相机偏航是156例如,我环顾四周,偏航变成158度,我的场景旋转3-4次。 我如何限制它?

我这样计算我的方向矢量:

glm::vec3 direction(
    cos(verticalAngle) * sin(horizontalAngle),
    sin(verticalAngle),
    cos(verticalAngle) * cos(horizontalAngle)
);

并计算我的向上像这样:

// Right vector
glm::vec3 right = glm::vec3(
    sin(horizontalAngle - 3.14f/2.0f),
    0,
    cos(horizontalAngle - 3.14f/2.0f)
);

glm::vec3 up = glm::cross( right, direction );

然后只需将位置和向量传递给glm :: lookAt即可。 但它不能如预期那样工作 - 我可以环顾四周并完美移动,但水平角度与实际场景旋转不匹配。

更好的问题将是:如何使horizo​​ntalAngle和verticalAngle与实际的场景旋转相匹配。

编辑:我是一个天才! :DI“cout”以弧度表示我的旋转......如果我用度数表示它的话。

链接地址: http://www.djcxy.com/p/81753.html

上一篇: How to restrict vertical angle? FPS glm::lookAt camera?

下一篇: Margins / Padding on Rotated Text in Table Cells