模板測試

計算機通過圖形卡控制顯示器,而圖形卡控制著顯示器螢幕上每一點的顏色。 圖形卡控制螢幕的方法是在圖形卡的顯存中分配一個區域,區域中每一個單元中存儲的顏色值和螢幕中相對應點的顏色一一對應,也就是說如果程式修改了顯存區域中一個單元中存儲的顏色值,也就修改了和這個單元相對應的螢幕點的顏色。這個顯存區域一般叫螢幕顯示區。

區域介紹

圖形卡控制螢幕的方法是在圖形卡的顯存中分配一個區域,區域中每一個單元中存儲的顏色值和螢幕中相對應點的顏色一一對應,也就是說如果程式修改了顯存區域中一個單元中存儲的顏色值,也就修改了和這個單元相對應的螢幕點的顏色。這個顯存區域一般叫螢幕顯示區。

使用情況

有時,需要為螢幕顯示區的每個單元設定一些標記,在渲染時根據這些標記進行不同的處理,記錄這些標記的顯存單元集合稱作模板快取區。例如解析度為1024×768像素的顯示器模式,螢幕顯示區的單元數應為1024×768,由於螢幕每個像素點都應有一個標記,所以模板快取區單元數也應為1024×768。模板快取區的一個單元可以是1位、4位或8位二進制數。

模板快取區的一個單元和深度快取區的一個單元總是共用一個32位二進制數,例如,其中24位為深度快取區單元,8位為模板快取區單元。顯示卡不同,模板快取區單元和深度快取區單元在32位二進制數中各允許占用的位數也不同。可以用如下方法查看本計算機使用的顯示卡中,模板快取區單元和深度快取區單元各允許占用多少位數,依序選擇“開始”|“程式”|“Microsoft DirectX 9.0 SDK Update|DirectX Utilitites|DirectX Caps Viewer”選單項,然後打開“DirectX Caps Viewer”視窗,即可看到本機顯示卡所支持的所有深度/模板快取區單元模式。例如,模式D24S8表示一個32位二進制數中深度快取區單元24位,模板快取區單元8位,模式D24X8表示深度快取區單元24位,其餘8位不使用。

使用渲染函式渲染3D模型的最後一步是,將投影變換得到的且將在螢幕顯示的3D模型的每個像素點的顏色值寫入螢幕顯示區相應的單元。如果允許模版測試,就在每次寫入一個像素點顏色值前,使用設定的模版比較函式進行測試,即對該像素點對應的模板緩衝單元的值和模板參考值進行比較,只有在該點模板函式比較成功時,渲染函式才執行寫入。當然,最終是否寫入,還要取決於深度測試,否則將保留該像素點在螢幕顯示區相應單元原來的顏色值。最後還要根據比較結果,對該模板緩衝單元的值做指定的處理。

相關詞條

相關搜尋

熱門詞條

聯絡我們