在OpenGL中平移和移动相机的正确方法?

时间:2010-09-03 00:51:10

标签: c++ c opengl

现在我在渲染所有内容之前通过glRotating进行平移,而我正在通过gltranslating移动相机。我觉得好像这是错的,因为我基本上是移动场景,而不是相机。移动相机的正确方法是什么?

由于

3 个答案:

答案 0 :(得分:2)

实际上“在相机周围移动场景”是O​​penGL的正确方法。

这是因为OpenGL将视图和模型矩阵组合到模型视图矩阵中。 (查看here了解更多详情)

显然,lookat函数(如上所述)是移动(虚拟)摄像机的简单方法,但我发现它不适用于OpenGL3。

我建议使用优秀的glm library来设置OpenGL3的转换矩阵。

亲切的问候, 弗洛里安

答案 1 :(得分:2)

移动场景和相机基本上是一回事。一个是另一个的消极。 实现它的通常方法是使用具有绝对坐标和方向的摄像机类,然后只需输入

glTranslate(-camera)
glRotate(-camera)

位于显示功能的顶部。

答案 2 :(得分:1)

gluLookAt就是你移动相机的方式。