Front、Back 和其他緩衝區
OpenGL 會儲存及操作框架緩衝區中的圖元資料。 framebuffer 是由一組邏輯緩衝區所組成:色彩、深度、累積和樣板緩衝區。 色彩緩衝區本身是由一組邏輯緩衝區所組成;此集合可以包含左前、右前、左後、右後,以及一些輔助緩衝區。 特定的像素格式或 OpenGL 實作可能無法提供所有這些緩衝區。 例如,Microsoft 在 Windows 中實作 OpenGL 的目前版本不支援立體影像,因此像素格式不能有左右色彩緩衝區。 此外,目前的版本不支援輔助緩衝區。 如需 OpenGL 緩衝區及其上操作之 OpenGL 函式的詳細資訊,請參閱 OpenGL 參考手冊 和 OpenGL 程式設計手冊。
Microsoft 在 Windows 中實作 OpenGL 支援對映射進行雙重緩衝處理。 這是一種技術,應用程式會將圖元繪製到螢幕外緩衝區,然後在該影像準備好顯示時,將螢幕外緩衝區的內容複寫到螢幕上的緩衝區。 雙緩衝可讓影像變更順暢,這對動畫影像特別重要。
使用雙緩衝處理的應用程式可以使用兩個色彩緩衝區:前端緩衝區和背景緩衝區。 根據預設,繪圖命令會導向回緩衝區 (螢幕外緩衝區) ,而前緩衝區則會顯示在畫面上。 當螢幕外緩衝區準備好顯示時,您會呼叫 SwapBuffers,而 Windows 會將螢幕外緩衝區的內容複寫到螢幕上的緩衝區。
一般實作會使用與裝置無關的點陣圖 (DIB) 做為背景緩衝區,以及螢幕顯示作為前緩衝區。 硬體裝置及其驅動程式可能會使用不同的方法。
雙緩衝是像素格式屬性。 若要要求像素格式的雙重緩衝,請在呼叫 ChoosePixelFormat的PIXELFORMATDESCRIPTOR資料結構中設定 PFD_DOUBLEBUFFER 旗標。
OpenGL 核心函式 glDrawBuffer會選取用於寫入和清除的緩衝區。
相關主題