2011-08-11 31 views
3

在OpenGL中,我有一個靜態相機和一個只需在用戶「移動相機」時移動的場景。 我在OpenGL中有一個相當複雜的場景,我在每幀都完全重新生成。 對不起,如果這是一個基本問題,但我不能將場景存儲在一種緩衝區中,然後我可以告訴OpenGL進行繪製?緩衝區在OpenGL中存儲所有形狀?

+1

是否要將場景的圖像存儲在紋理中,因此您只需繪製紋理(genpfault的答案)。或者你想以抽象的方式存儲渲染的場景數據(傑瑞的答案)? –

回答

2

是的。在「傳統」OpenGL中,你會使用display list。在更「現代」的OpenGL中,你會使用vertex buffer object

+0

謝謝,有一點了解,但我現在到了! –

1

調查FBOs以獲得快速解決方案。

或者,只是不要清除每幀的顏色緩衝區。

+0

我終於去了維也納國際組織,謝謝! –

3

OpenGL不存儲場景。這是一個繪圖API,即您所做的是發送繪圖命令。顯示列表只是批量處理(大量)繪圖命令的一種便捷方式。所以你也不要通過重繪「重新創建」一個場景,但是實際上你會繪製這些東西,每次你發出OpenGL繪圖命令。這是重要的理解!這意味着,改變一些東西是一個場景,OpenGL的成本並不高,因爲無論如何你都在重繪所有的東西。因此,圍繞(錯誤的)假設設計程序幾乎沒有什麼好處,OpenGL爲您做了一些場景管理。