2017-04-03 26 views
0

我使用它采用了渲染循环具有固定帧率保持更新随着世界的变化,屏幕的openGL三维模拟程序的工作。标准程序真的,对于典型的视频游戏来说,这当然是最好的方法(我最初从openGL游戏教程中获得了这些代码)。但对我而言,3D场景不会像在电脑游戏中那样迅速变幻莫测。 3D场景本身可能会随时发生变化,但通常它不会在渲染调用之间改变(它更像是一个几何问题的可视化工具)。用户将能够控制摄像机的位置/方向,但通常会有几次摄像机不会移动几秒/分钟(可能有数百个渲染调用),并且由于3D场景可能是静态的大多数时候,我想知道我是否真的需要连续渲染循环...?渲染循环与明确地调用更新方法

我的想法是,我将删除自动循环渲染,而是我会明确地打电话给我更新方法时要么,

  1. 3D场景的变化(很少见)
  2. 摄像机移动(有点罕见)

由于我将主要用于研究目的,场景/相机可能会一次停留在一个状态几分钟,看起来很愚蠢的是不断更新帧缓冲区不变时。

我的问题是,这是一个好方法吗?所有关于3D图形渲染的在线教程似乎都涉及游戏设计,但那不是我的要求。换句话说,使用渲染循环的优点和缺点与手动调用“update()”什么时候发生了变化?

感谢

回答

1

有这种方法没有问题,其实很多3D应用程序,如3DS MAX使用明确的渲染。你只需要选择更适合你的需求,大多数游戏场景会改变每一帧,所以最好有更新循环,但是如果你正在做一些国际象棋游戏,没有动画用户界面,你也可以在场景变化时使用显式渲染。

对于罕见变化的应用程序,像3DS或搅拌机倒不如叫渲染仅在变化。这样你可以节省CPU/GPU,但也可以节省电力,而且你的电脑不会变热。

有了明确的渲染也可以有一些表现技巧,喜欢绘图时简化场景摄像机的移动,获得更好的性能。然后,当相机停下来时,您再次在整个背景中渲染完整的场景,并将低质量渲染替换为新渲染。

+0

谢谢,非常明确和有帮助的答案 – JeneralJames