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

标签 c++ c opengl

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

谢谢

最佳答案

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

这是由于 OpenGL 将 View 和模型矩阵合并到模型 View 矩阵中。 (查看here了解更多详情)

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

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

亲切的问候, 弗洛里安

关于c++ - 在 OpenGL 中平移和移动相机的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3632327/

相关文章:

c++ - 从现有项目构建 exe 包(可移植)

c++ - typedef 结构中的重载运算符 (c++)

php - zend 引擎返回对象引用

opengl - 什么是硬件游标,它如何工作?

c - opengl中的背景颜色

c++ - C++ 编译器是否允许仅使用构造来替换构造+移动构造?

c - SDL 视频驱动程序

c - 使用 extconf.rb 设置预处理器定义

c++ - glm::mix 返回无效的四元数

c++ - rand() 每次运行程序时返回相同的数字