1. 程式人生 > >“觀--《Unity Shader 入門精要》--有感(一)”

“觀--《Unity Shader 入門精要》--有感(一)”

“觀–《Unity Shader 入門精要》–有感(一)”
第二章
1.渲染流程分為3個階段:應用階段、幾何階段、光柵化階段。(概念流水線)
2.渲染流水線:由三維場景渲染成二維影象。
3.渲染流水線任務是由CPU和GPU共同完成的。
4. 應用階段(CPU):輸入–場景資料(比如:視錐體、攝像機的位置、模型、光源等)、
粗粒度剔除(剔除物體,提高渲染效能)、渲染狀態(材質(漫反射顏色、高光反射顏色)、紋理、shader等)
輸出–渲染圖元:渲染所需的幾何資訊。(渲染圖元通俗來講可以是點、線、三角面等)

5.幾何階段(GPU):物件:渲染圖元(點、線、三角面)
過程:逐頂點、逐多邊形
任務:頂點座標變換到螢幕空間等
輸出:螢幕空間的二維頂點座標、每個頂點對應的深度值、著色等相關資訊。
6.光柵化階段(GPU):功能:資料–>螢幕畫素,渲染出最終影象。
任務:決定每個渲染圖元中的哪些畫素應該被繪製在螢幕。
過程:逐頂點資料(紋理座標、頂點顏色等)進行插值,逐畫素處理。
7.CPU與GPU之間的通訊,分為3個階段:
(1)把資料載入到視訊記憶體中;
(2)設定渲染狀態;
(3)呼叫Draw Call。
8.資料從硬碟(HDD)讀取,載入到記憶體(RAM),網格和紋理等資料又從記憶體載入到視訊記憶體(VRAM)。
原因:顯示卡對視訊記憶體的訪問速度更快,大多數顯示卡對於記憶體沒有直接的訪問權利。
9.RAM中的資料需要儲存,原因:需要進行其他操作(碰撞檢測等),從硬碟載入到RAM非常消耗時間。
10.視訊記憶體的資料:頂點的位置資訊、法線方向、頂點顏色、紋理座標等。
11.渲染狀態:定義了場景中的網格是怎樣被渲染的。
12.渲染狀態:定義使用什麼頂點著色器/片元著色器、光源屬性、材質等。
13.資料、狀態完成之後,呼叫Draw Call.
14.CPU與GPU的通道----Draw Call,發起方:CPU,接受方GPU。
15. 頂點資料
幾何階段:
(1)著色器(頂點/曲面細分/幾何著色器)
(2)裁剪
(3)螢幕對映
光柵化階段:
(1)固定函式階段:三角形設定、三角形遍歷
(2)片元著色器
(3)逐片元操作
螢幕影象

【注】:文章內容均為《Unity Shader 入門精要》一書,本人觀書有感,不對之處,還請不吝指教。