【发布时间】:2017-04-03 08:37:31
【问题描述】:
我正在使用 openGL 开发一个 3D 模拟程序,该程序使用具有固定帧速率的渲染循环来随着世界的变化保持屏幕更新。确实是标准程序,对于典型的视频游戏来说,这无疑是最好的方法(我最初从 openGL 游戏教程中获取此代码)。但对我来说,3D 场景不会像电脑游戏中那样快速和不可预测地变化。 3D 场景本身可能会不时发生变化,但通常不会在渲染调用之间发生变化(它更像是几何问题的可视化工具)。用户将能够控制摄像机的位置/方向,但一般来说,有时摄像机会在几秒/分钟内不动(可能有数百次渲染调用),因为 3D 场景可能是静态的大多数时候,我想知道我是否真的需要一个连续的渲染循环......?
我的想法是我将删除自动渲染循环,而是在任一情况下显式调用我的 update 方法,
- 3D 场景变化(非常罕见)
- 相机移动(有些罕见)
由于我将主要将其用于研究目的,因此场景/相机可能一次保持一种状态几分钟,并且在帧缓冲区没有变化时不断更新它似乎很愚蠢。
那么我的问题是,这是一个好方法吗?所有 3D 图形渲染的在线教程似乎都与游戏设计有关,但这并不是我真正的要求。换句话说,使用渲染循环与在发生变化时手动调用“update()”的优缺点是什么?
谢谢
【问题讨论】: