模版緩衝

模版緩衝(stencil buffer)印模緩衝,是在OpenGL三維繪圖等計算機圖像硬體中常見的除顏色緩衝像素緩衝深度緩衝之外另一種數據緩衝。詞源模版(stencil)是指一種印刷技術,通常以蠟紙或者鋼板印刷文字或圖形;區別於模板(template),用木板為外形修剪的依據來複製形狀;模版(stencil)是指印模,而模板(template)主要是指形模。模版緩衝是以像素為單位的,整數數值的緩衝,通常給每個像素分配一個字節長度的數值。深度緩衝與模版緩衝經常在圖形硬體的隨機存取記憶體(RAM)中分享相同的區域。

最簡單的情況,模版緩衝被用於限制渲染的區域。更多高級應用會利用深度緩衝與模版緩衝的在圖形渲染流水線中的強關聯關係。例如,模版的數值可以按每個像素是否通過深度測試來自動增加或減少。

簡單組合使用深度測試與模版修飾符可以使得大量的本來需要多次渲染過程的效果(例如陰影、外形的繪製或複合幾何圖元(Geometric primitive)的交叉部份的高光處理)可以簡單實現,因此減輕了圖形硬體的負擔。

最典型的應用是給三維圖像加陰影。也用於平面反射。

其它渲染的技術,例如,視口渲染(portal rendering),利用模版緩衝作其它用途。例如,它可以被用於查找被視口遮蔽的屏幕區域然後重新正確渲染這些像素點。

模版緩衝與其修飾符可以通過OpenGL或Direct3D的應用程序編程接口(API)來訪問。

參閱