【问题标题】:Proper way to pan and move camera in OpenGL?在OpenGL中平移和移动相机的正确方法?
【发布时间】:2010-09-03 00:51:10
【问题描述】:

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

谢谢

【问题讨论】:

  • 嗨 Milo,如果您对平移功能有任何了解,现在意味着。请为 Android 中 OpenGL Es2.0 中的 Pan Functionality 提供任何示例代码。我看到了更多链接,但是,我无法清楚地了解该 pan 功能..
  • @sje397 链接已损坏。

标签: c++ c opengl


【解决方案1】:

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

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

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

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

亲切的问候, 弗洛里安

【讨论】:

  • 嗨,弗洛里安,您能否建议任何有关 Android 中 OpenGL Es2.0 中的平移功能的示例代码。我看到了更多链接,但是,我无法清楚地了解该平移功能..
【解决方案2】:

移动场景和相机本质上是一回事。一个是另一个的否定。 实现它的通常方法是有一个具有绝对坐标和方向的相机类,然后你就放

glTranslate(-camera)
glRotate(-camera)

在显示函数的顶部。

【讨论】:

  • 嗨 Takoi,我也尝试过这个平移,虽然触摸事件。但是,它不适合我。你能给出这个平移功能的一些示例代码吗?
【解决方案3】:

gluLookAt 是您移动相机的方式。

【讨论】:

  • @Milo:你也可以用 gluLookAt 平移它。
  • 这是 Python 绑定文档的链接。 Here are C API docs.
  • @Craig McQueen:感谢链接。
  • 您好,该链接(页面未找到错误)未打开..请您提供一些示例程序,用于在 android 的 opengles2.0 中进行此平移功能..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-14
  • 1970-01-01
相关资源
最近更新 更多