2017-04-03 53 views
0

我使用它採用了渲染循環具有固定幀率保持更新隨着世界的變化,屏幕的openGL三維模擬程序的工作。標準程序真的,對於典型的視頻遊戲來說,這當然是最好的方法(我最初從openGL遊戲教程中獲得了這些代碼)。但對我而言,3D場景不會像在電腦遊戲中那樣迅速變幻莫測。 3D場景本身可能會隨時發生變化,但通常它不會在渲染調用之間改變(它更像是一個幾何問題的可視化工具)。用戶將能夠控制攝像機的位置/方向,但通常會有幾次攝像機不會移動幾秒/分鐘(可能有數百個渲染調用),並且由於3D場景可能是靜態的大多數時候,我想知道我是否真的需要連續渲染循環...?渲染循環與明確地調用更新方法

我的想法是,我將刪除自動循環渲染,而是我會明確地打電話給我更新方法時要麼,

  1. 3D場景的變化(很少見)
  2. 攝像機移動(有點罕見)

由於我將主要用於研究目的,場景/相機可能會一次停留在一個狀態幾分鐘,看起來很愚蠢的是不斷更新幀緩衝區不變時。

我的問題是,這是一個好方法嗎?所有關於3D圖形渲染的在線教程似乎都涉及遊戲設計,但那不是我的要求。換句話說,使用渲染循環的優點和缺點與手動調用「update()」什麼時候發生了變化?

感謝

回答

1

有這種方法沒有問題,其實很多3D應用程序,如3DS MAX使用明確的渲染。你只需要選擇更適合你的需求,大多數遊戲場景會改變每一幀,所以最好有更新循環,但是如果你正在做一些國際象棋遊戲,沒有動畫用戶界面,你也可以在場景變化時使用顯式渲染。

對於罕見變化的應用程序,像3DS或攪拌機倒不如叫渲染僅在變化。這樣你可以節省CPU/GPU,但也可以節省電力,而且你的電腦不會變熱。

有了明確的渲染也可以有一些表現技巧,喜歡繪圖時簡化場景攝像機的移動,獲得更好的性能。然後,當相機停下來時,您再次在整個背景中渲染完整的場景,並將低質量渲染替換爲新渲染。

+0

謝謝,非常明確和有幫助的答案 – JeneralJames