OpenGL學習四——幀緩存

1、緩存介紹
   以統一的方式對每個像素的數據進行存儲的空間被稱爲緩存,OpenGL中有四種緩存——顏色緩存、深度緩存、模板緩存以及累積緩存。
   顏色緩存存儲了顏色索引或RGB顏色數據,還存儲了alpha值,主要用於圖像像素顏色的顯示。深度緩存存儲了每個像素的深度值,通常是指視點的距離。通常深度值大的像素會被深度值小的像素覆蓋,但深度緩存的這種行爲是可以修改的。模板緩存存儲了特定的模板,用於將繪圖範圍限制在屏幕的特定區域,並以模板的形狀顯示出來。累積緩存存儲了RGBA的顏色數據,通常用於將一系列的圖像合成一幅圖像。
   在圖形程序中,一個重要的工作就是清屏(清空緩存)。爲了解決這種問題,有些計算機帶有可同時清除多個緩存的硬件。OpenGL的清除函數使用了這種體系。首先,對於每個要清除的緩存,指定要寫入的值;然後調用執行清除操作的函數,並將所有要清除的緩存作爲參數傳遞給該函數。清除緩存的函數:
   glClearColor:設置清除顏色緩存使用的顏色值
   glClearIndex:設置清除顏色緩存使用的顏色索引值
   glClearDepth:設置清除深度緩存使用的深度值
   glClearStencil:設置清除模板緩存使用的值
   glClearAccum:設置清除累積緩存使用的顏色值
   使用函數glClear可以同時清除多個緩存。
 
2、繪製過程
   在屏幕上繪製圖像時,OpenGL需要執行各種計算和測試,計算過程包括旋轉、平移、縮放、光照計算、以透視方式投影物體、判斷窗口中那些像素將受影響、確定以何種顏色繪製這些像素,經過計算OpenGL即可確定應生成的片元以及片元顏色。在片元進入幀緩存之前需要經過的測試過程包括截剪測試、alpha測試、模板測試、深度測試,通過測試後片元將寫入緩存成爲像素,寫入時還可能進行以下操作:混合、抖動以及邏輯運算。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章