首页 > 解决方案 > PyOpenGL 相机系统

问题描述

我对 PyOpenGL 相机的工作原理或如何实现它感到困惑。我是要围绕相机旋转和移动整个世界还是有不同的方式?

我找不到任何可以帮助我的东西,而且我不知道如何将 C 翻译成 python。

我只需要一种转换相机的方法,它可以帮助我理解它是如何工作的。

标签: pythonopenglpyopengl

解决方案


坦率地说:在 OpenGL 中没有“相机”之类的东西(DirectX、Vulkan 或任何传统的 3D 图形 API 中都没有)。相机的效果被理解为有助于几何体最终放置在视口体积内的一些参数。

您越早了解当前 GPU 所做的一切就是提供大规模加速的计算资源来设置 2D 网格中的像素值,其中像素更改的区域仅仅是 2D 平面上的点、线或三角形,它们被投影到从一个任意尺寸的抽象空间,更好。

你甚至没有在相机周围环游世界。设置转化,其实就是在搭建“世界”最初出现的舞台。“相机”的任何概念都是由更高级别的框架创建的抽象,例如第三方 3D 引擎或您自己的创建。

因此,不要用相机来思考,这会限制你的思考,你应该这样思考:

我必须链接什么样的转换,通过让这个位置出现在可见屏幕上的某个位置来赋予一个被称为“位置”的数字元组一个实际含义?

你真的应该这样想,因为这就是实际发生的事情。


推荐阅读