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

时间:2015-01-01 23:20:25

标签: opengl

我正在关注本教程: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与实际场景旋转相匹配。

编辑:我是个天才! :D我" cout"我以弧度为单位旋转......如果我用度数来衡量它,那就好了。

0 个答案:

没有答案