2.3 GPU流水線編程
2.3.2 頂點着色器測試
輸入來自於CPU,處理頂點數據。輸入的每一個頂點都會調用一次頂點着色器,因此每次都是對單個頂點進行運算。blog
主要任務:座標變換、逐頂點光照。接口
座標變換:修改頂點的位置,例如模擬水面波紋效果、果凍效果等。it
必須完成的工做,把頂點座標從模型空間轉換到齊次裁剪空間。io
常見的如:o.pos = mul(UNITY_MVP, v.position);渲染
2.3.3 裁剪遍歷
攝像機視野有限,視野外的物體不須要被處理,能夠直接裁剪掉。im
2.3.4 屏幕映射技術
將單位立方體內的三維座標轉換到二維屏幕座標,與分辨率有較大關係。
2.3.5 三角形設置
將網格點連成線,計算獲得三角形網格。
2.3.6 三角形遍歷
計算每一個像素是否被三角網格覆蓋,覆蓋則生成片元。
2.3.7 片元着色器
輸入:上一個階段(頂點着色器)對頂點信息插值的結果
輸出:一個或多個顏色值
渲染技術:紋理採樣
2.3.8 逐片元操做
1.決定每一個片元的可見性,例如,深度測試、模版測試
2.將經過測試的片元顏色值與緩衝區內的顏色進行混合
3.混合,不透明物體直接覆蓋原緩衝區的像素值,透明物體與原緩衝區像素值進行混合。
2.4 一些容易困惑的地方
2.4.3 什麼是Draw Call
CPU調用圖像編程接口命令GPU進行渲染的操做,Draw Call多了致使CPU大量執行重複的命令而過載,掉幀。