在一次面試的過程中,面試官問到了我這個問題。當時答得不是特別完善,回來翻閱了一下紅寶書,總結如下:
由於完整的繪製管線包括處理幾何數據和像素數據兩條,這裏只考慮幾何數據。如果以後有機會用到處理像素數據,再考慮。
(1)獲得頂點數據
如果使用了顯示列表,就從顯示列表中獲得被保存的數據;如果沒有使用顯示列表,則直接獲得頂點數據
(2)求值器
在某些情況下,比如處理參數化曲線,則需要通過求值器這個步驟,根據控制點計算出表面頂點。
(3)基於頂點的操作
將前兩步中傳送過來的頂點數據進行操作。執行的操作有:矩陣變換,生成紋理座標,根據設置的光照生成顏色值
(4)圖元裝配
圖元裝配將頂點裝配成幾何圖元,另一個主要內容是進行裁剪,透視處理,視口變換等等。
(5)光柵化
光柵化是把幾何數據和像素數據轉換爲片斷的過程。每個片斷方塊對應於幀緩衝區的一個像素。
(6)片斷操作
在數據實際存儲到幀緩衝區之前,還需要對片斷做些操作。比如生成紋理單元,霧計算,alpha測試,深度測試等等。