现在我在渲染所有内容之前通过glRotating进行平移,而我正在通过gltranslating移动相机。我觉得好像这是错的,因为我基本上是移动场景,而不是相机。移动相机的正确方法是什么?
由于
答案 0 :(得分:2)
实际上“在相机周围移动场景”是OpenGL的正确方法。
这是因为OpenGL将视图和模型矩阵组合到模型视图矩阵中。 (查看here了解更多详情)
显然,lookat函数(如上所述)是移动(虚拟)摄像机的简单方法,但我发现它不适用于OpenGL3。
我建议使用优秀的glm library来设置OpenGL3的转换矩阵。
亲切的问候, 弗洛里安
答案 1 :(得分:2)
移动场景和相机基本上是一回事。一个是另一个的消极。 实现它的通常方法是使用具有绝对坐标和方向的摄像机类,然后只需输入
glTranslate(-camera)
glRotate(-camera)
位于显示功能的顶部。
答案 2 :(得分:1)
gluLookAt就是你移动相机的方式。