OpenGL的工作流程

OpenGL的工作流程


1. 幾何操作
(1) 針對每個頂點的操作
每個頂點的空間座標需要經過模型取景矩陣變換、法向矢量矩陣變換,若允許紋理自動生成,則由變換後的頂點座標所生成的新紋理座標替代原有的紋理座標,再經過當前紋理矩陣變換,傳遞到幾何要素裝配步驟。
(2) 幾何要素裝配
不同的幾何要素類型決定採取不同的幾何要素裝配方式。若使用平直明暗處理,線或多邊形的所有頂點顏色則相同;若使用裁剪平面,裁剪後的每個頂點的空間座標由投影矩陣進行變換,再由標準取景平面進行裁剪,再進行視口和深度變換操作。如果幾何要素是多邊形,還要做剔除檢驗,最後生成點圖案、線寬、點尺寸的像素段,並賦上顏色、深度值。
2. 像素操作
由主機讀入的像素首先解壓縮成適當的組份數目,然後進行數據放大、偏置,並經過像素映射處理,根據數據類型限制在適當的取值範圍內,像素最後寫入紋理內存,使用紋理映射或光柵化生成像素段;如果像素數據由幀緩衝區讀入,則執行放大、偏置、映射、調整等像素操作,再以適當的格式壓縮。像素拷貝操作相當於解壓縮和傳輸操作的組合,只是壓縮和解壓縮不是必須的,數據寫入幀緩衝區前的傳輸操作只發生一次。
3. 像素段操作
當使用紋理映射時,每個遊戲像素段將產生紋素,再進行霧效果計算、反走樣處理。接着進行裁剪處理、一致性檢驗(只在RGBA模式下使用)、模板檢驗、深度緩衝區檢驗和抖動處理。若採用顏色索引模式,像素還要進行邏輯操作;在RGBA模式下則進行混合操作。
根據着色模式不同,決定像素段採取顏色屏蔽還是指數屏蔽,屏蔽操作之後的像素段將寫入到適當的幀緩衝區。如果像素寫入模板或深度緩衝區,則進行模板和深度檢驗屏蔽,而不用執行混合、抖動和邏輯操作。
對於創建一個三維圖形的基本步驟,大致可以包括以下三個主要環節:
(1)建模:包括幾何建模和行爲建模,幾何建模處理物體的幾何和形狀的表示,行爲建模處理物體的運動和行爲的描述; 
(2)設置視點:描述觀察者的空間位置;
(3)設置環境:描述環境的特徵,如:光源、空氣能見度等。
OpenGL的繪製過程多種多樣,內容非常豐富,主要提供以下幾種對三維物體的繪製方式:
(1) 線框繪製方式(Wire frame):繪製三維物體的網格輪廓線。
(2) 深度優先線框繪製方式(Depth cued):採用線框方式繪圖,使遠處的物體比近處的物體暗一些,以模擬人眼看物體的效果。
(3) 反走樣線框繪製方式(Antialiased):採用線框方式繪圖,繪製時採用反走樣技術,以減少圖形線條的參差不齊。
(4) 平面明暗處理方式(Flat shading):對模型的平面單元按光照進行着色,但不進行光滑處理。
(5) 光滑明暗處理方式(Smooth shading):對模型按光照繪製的過程進行光滑處理,這種方式更接近於現實。
(6) 加陰影和紋理的方式(Shadow and Texture):在模型表面貼上紋理甚至加上光照陰影效果,使三維場景像照片一樣逼真。
(7) 運動模糊繪製方式(Motion blured):模擬物體運動時人眼觀察所覺察到的動感模糊現象。
(8) 大氣環境效果(Atmosphere effects):在三維場景中加入霧等大氣環境效果,使人有身臨其境之感。 
(9) 深度域效果(Depth of effects):類似於照相機鏡頭效果,模擬在聚焦點處清晰。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章