2011-11-04 230 views
2

如果兩個人都一樣,有人能指出我嗎?我的意思是我一直在閱讀有關它的信息,在這裏本紅皮書說幀緩衝區/顏色緩衝區?

「顏色緩衝區本身可以由多個子緩衝器的。一個系統上的幀緩衝區包含所有這些緩衝器」 here

是幀緩衝,然後像(如深度/模板等)

回答

6

幀緩衝區包含(通常)深度,模板,顏色和累積緩衝區。顏色緩衝區是最重要的部分,但它們只是一個部分。您可以創建更多的顏色緩衝區,並且您還可以在OpenGL中創建更多的幀緩衝區。

當你說「虛擬幀緩衝器」,有時是指非繪製到屏幕(例如,它被寫入到磁盤,或用作紋理)幀緩衝區。我相信這個術語是特定於X11的,而不是OpenGL。

+0

好了,所以說層次幀緩衝總是喜歡不同的緩衝區的一個超集..對不對?通過虛擬,我的意思是它本身(物理上)不像真正的緩衝區。例如,聯合國是所有國家的集團,但沒有像聯合國這樣的國家。那是對的嗎? – Manish

+1

幀緩衝區是真實的,並且顏色緩衝區也是真實的。就像加拿大是真實的,安大略省也是真實的。 –

5

如果你真的想這個神交,看看OpenGL Framebuffer Objects。 FBO是「屏幕外」渲染目標。所有這一切意味着,不是讓你的照片出現在你的顯示器上,而是將它呈現給別的地方 - 一個FBO。在做到這一點之前,您必須創建並配置FBO。該配置的一部分是添加一個顏色附件 - 一個緩衝區來保存渲染圖片的每個像素的顏色信息。也許你會在那裏停下來,或者你也可以添加深度附件。如果你是渲染3D幾何,而你希望它看起來是正確的,你可能會添加此深度的附件。

事實上,這是一個很好的嘗試。編寫一個小型的OpenGL程序,將一個簡單的3D立方體渲染到屏幕上。一旦你的工作,你的渲染目標更改爲您一個附色配置FBO。很可能,它看起來不太對,因爲OpenGL在渲染過程中沒有地方存儲深度信息。繁榮!一切都有相同的深度。現在給你的FBO添加一個深度附件,看看渲染是如何改變的。

一旦你認爲屏幕幀緩衝區基本上是默認的,設置 - 從最開始FBO,這是很清楚的是,幀緩存由多個緩衝區。