unity-shader之混合模式、面剔除、Alpha测试、深度测试、通道遮罩
混合模式
我們著色完成之后,需要把顏色的混合輸出到幀緩沖區里面,這個時候就可能涉及到源與目標,比如說半透明,原來是一個顏色Alpha通道的意思是我這個目標能夠透過多少,也就是說我們本來的顏色只有RGB是沒有Alpha通道的,Alpha類似于描述疊加顏色的時候要怎么疊加過去,所以Alpha通道
又叫做透明度,一旦有了透明度,就涉及到了原顏色與目標顏色的混合
下圖是混合命令。
注意:混合命令要放置在通道Pass里面
示例:
場景
代碼:
開啟混合模式之后
Alpha測試
可以通過AlphaTerst off/on 來進行開啟或者關閉Alpha測試,默認是關閉的
此測試是阻止片元被寫到屏幕中的最后的機會,決定最終渲染的顏色的透明度與一個設定的固定值進行比較,符合條件則通過測試,進行片元的繪制,反之則丟棄此片元
比較測試紙的模式
想要開啟或者關閉Alpha測試只需要在Pass通道里面,CGPROGRAM外面添加相應的代碼即可(由于添加的代碼并不是標準的CG語言,所以需要添加到外面)
面剔除
與Alpha測試的位置一樣。
深度測試
深度測試與上一篇博客的渲染隊列相似,這里不再說明,語法與前兩者一樣
通道遮罩
1.通道遮罩是開發冉淵指定渲染結果輸出的通道,而不是正常情況下的RGBA四個通道
2.可選的是RGBA的任意組合以及0,如果為0意味著不會寫入任何隊列
3.ColorMask RG…ColorMask 0
用法
場景:
使用并運行:
只輸出一個通道值
總結
以上是生活随笔為你收集整理的unity-shader之混合模式、面剔除、Alpha测试、深度测试、通道遮罩的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 01—C语言基本语句
- 下一篇: gogo_out: protoc-gen