[Shader筆記]透明物體(Z-Test、Z-Write、Z-Buffer、Alpha Blending)

“ shader development using Unity” + Unity shader 入門精要筆記

詹閔翔
詹閔翔
Aug 8, 2019 · 7 min read
漸層效果

目錄:

  1. 專有名詞介紹
  2. 專有名詞彼此之間的關西
  3. 透明Shader實作
  4. 漸變色實作shader

本次學習重點:

  1. 知道渲染透明物體的原理
  2. 知道電腦裡面要怎麼渲染透明物體
  3. 搞懂每個專有名詞
    1)Z-Test(深度測試)
    2)Z-Write(深度寫入)
    3)Z-Buffer(深度緩衝)
    4)Alpha Blending(透明度混合)
    5)RenderQueue(渲染序列)
  4. 知道如何修改現成Shader (改成透明材質)

RenderQueue(渲染序列)

渲染序列的運作原則就是比大小,數字越大的會越晚被渲染而視覺上最直接影響到的就是誰在前面誰在後面。

Z-Write(深度寫入):

是一個可選擇的動作(預設是ZWrite on),會根據條件決定是否執行

Z-Buffer(深度緩衝):

深度緩衝區保存:“深度值”
物體在世界空間中距離攝像機的遠近。
距離越近,深度值越小;距離越遠,深度值越大。

Z-Test(深度測試):

每次都會測試Shader附著物體對應的片元,比對物件的深度值與深度緩衝目前的值進行比較(以下列出比較種類),如果通過則該物件那點像素才會將顏色寫入顏色緩衝區(Color buffer)。

Alpha Blending(透明度混合):

透明度混合使用當前片元的透明度作為混合因子,與已經存儲在顏色緩衝中的顏色進行混合,得到新的顏色,不過透明度混合必須要關閉深度寫入(Zwrite)

漸層透明效果

漸層效果
如果看不到程式碼可以換到Chrome瀏覽器 :https://gist.github.com/doremi31618/16ea4bdb3ce2c0b4df0ad95f040e1eee

Eric’s publication

thanks for reading my articles ,see you next time

Eric’s publication

The place where you will find Interactive Design (Unity, OpenGL), BCI, Psychology articles

詹閔翔

Written by

詹閔翔

現職3D演算法工程師/Unity程式工程師。畢業於國立台北科技大學 互動設計系。創作專注於互動多媒體與跨領域合作的可能性,並樂於將所見所聞製作成人人都能輕鬆理解的教學文章分享於網路平台。作品跨足了互動設計、XR應用、體感與裝置,並跨界與認知心理學、藝術劇團合作。亦曾參與過多項科技部計劃。目前主力為Unity3D跨領域研

Eric’s publication

The place where you will find Interactive Design (Unity, OpenGL), BCI, Psychology articles