OpenGL綜合知識 Frame Buffer

2021-05-24 12:43:34 字數 1697 閱讀 5479

gpu

的繪製結果並不一定直接寫入

on screen buffer

中。on screen buffer

中的資料是被用以顯示輸出的顏色資訊,所以,

on screen buffer

屬於color buffer

。在opengl

中定義了多個

color buffer

,比如front buffer

、back buffer

、left buffer

等等,其中

front buffer

就是on screen buffer

。如果將

gpu的繪製結果直接寫入

front buffer

中,可能會出現閃爍現象。

可以將gpu的繪製結果先寫入

back buffer

中,然後再用某種機制顯示出來,比如在合適的時機將資料拷貝到

front buffer

中。這樣,就可以消除閃爍現象。

gpu繪製結果除了顏色資訊外,還可能包括

depth

和stencil

資訊,假如存在的話,它們會被分別輸出到

depth buffer

和setncil buffer中。

所有的color buffer

和depth buffer

、stencil buffer

、accum buffer

組成為frame buffer

,如下圖所示。

實際上,存在兩種型別的

frame buffer

,一種型別就是如前所述,和

on screen buffer

相關聯,最終要顯示出來的;另一種型別則和

on screen buffer

無關,一般是作為中間結果暫存,不需要顯示,在

frame buffer object

技術中被引入。一般所說的

frame buffer

都是以顯示為目的的。

以後,我們將不再使用

on screen buffer

這個說法,而用

frame buffer

這個術語。

深入到驅動開發層次,有些顯示卡為了效率考慮,

depth buffer

和stencil buffer

在物理上可能是交叉在一起的。

如果是乙個全屏程式,也就是說

color buffer

和螢幕解析度是一致的,可以將

back buffer

中的資料拷貝到

front buffer

中進行顯示,也可以直接將

back buffer

的屬性設定為

on screen buffer

,這樣減少拷貝過程可以大幅提高效能。

如果不是全屏程式,

front buffer

其實只是

on screen buffer

的一部分。

為了某些設計上的考慮,

front buffer

可能和on screen buffer

在物理上是分開的,當然,驅動程式會對外遮蔽這個特性。

OpenGL 多邊形偏移 Frame顯示方式

如果想著重顯示實心物體的邊緣,可以先用gl fill模式繪製這個物體,然後再gl line下再次用另外一種不同的顏色再次繪製 如右圖 但是由於光柵化的方式不完全相同,因此直線和多邊形經過計算後的z值也可能不同 也可能向後,這就導致了線和實心忽濃忽暗的效果 右圖2 glpolygonmode gl f...

1 OpenGL綜合知識 2D和3D

考察計算機顯示卡最後輸出到顯示器的環節,有一塊和螢幕解析度一致的物理連續的 memory 有乙個名為 display controller 名稱待確認 的硬體裝置,該硬體將 memory 中的資料傳遞到顯示裝置中顯示。此時,這塊 memory 被稱為on screen buffer 可以同時存在多塊...

seo知識綜合總結

鷹潭seo針對之前跟大家分享的seo知識今天做乙個大體總結,想要了解具體的內容大家可以進入鷹潭seo www.jxytseo.com。第一篇 搜尋引擎與優化 seo基礎知識 什麼是搜尋引擎?搜尋引擎是指根據一定的策略 運用特定的電腦程式從網際網路上蒐集資訊,在對資訊進行組織和處理後,為使用者提供檢索...