python - PyOpenGL 相机系统
问题描述
我对 PyOpenGL 相机的工作原理或如何实现它感到困惑。我是要围绕相机旋转和移动整个世界还是有不同的方式?
我找不到任何可以帮助我的东西,而且我不知道如何将 C 翻译成 python。
我只需要一种转换相机的方法,它可以帮助我理解它是如何工作的。
解决方案
坦率地说:在 OpenGL 中没有“相机”之类的东西(DirectX、Vulkan 或任何传统的 3D 图形 API 中都没有)。相机的效果被理解为有助于几何体最终放置在视口体积内的一些参数。
您越早了解当前 GPU 所做的一切就是提供大规模加速的计算资源来设置 2D 网格中的像素值,其中像素更改的区域仅仅是 2D 平面上的点、线或三角形,它们被投影到从一个任意尺寸的抽象空间,更好。
你甚至没有在相机周围环游世界。设置转化,其实就是在搭建“世界”最初出现的舞台。“相机”的任何概念都是由更高级别的框架创建的抽象,例如第三方 3D 引擎或您自己的创建。
因此,不要用相机来思考,这会限制你的思考,你应该这样思考:
我必须链接什么样的转换,通过让这个位置出现在可见屏幕上的某个位置来赋予一个被称为“位置”的数字元组一个实际含义?
你真的应该这样想,因为这就是实际发生的事情。
推荐阅读
- html - 将表格调整为页面高度
- google-cloud-platform - Dataprep 不起作用 - Cloud Dataflow 服务代理
- javascript - jQuery解析html并改变它
- django - 背景模板本地化
- php - Codeigniter :获取具有唯一电子邮件的记录
- c++ - 为什么存在用户声明的析构函数时会生成移动构造函数?
- angular - 无法将选项卡组中的元素拖放到另一个选项卡上
- python - Python argparse:参数中的前导破折号
- jquery - json数据中的表返回为未定义但有数据
- php - 如何在 Twig/Timber 过滤器中使用 RegEx?