「UnityShader入門精要」第二章 渲染流水線

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大量執行重複的命令而過載,掉幀。

相關文章
相關標籤/搜索