unity文檔ShaderLab: Stencil
1.語法
所有參數都設置時寫法及默認值如下
Stencil
{
Ref 0
ReadMask 255
WriteMask 255
Comp Always
Pass Keep
Fail Keep
ZFail Keep
}
2.參數
- Ref 要比較的值,或者叫參考值(如果Comp的值不爲always)和要寫入緩衝區的值(如果Pass,Fail 或 ZFail 被設爲replace時),取值範圍[0,255]
- ReadMask
- WirteMask
- Comp 比較參考值和緩衝區當前值的方法,默認爲alaways。
方法名 | 描述 |
---|---|
Greater | > |
GEqual | >= |
Less | < |
LEqual | <= |
Equal | == |
NotEqual | != |
Always | 總是 |
Never | 從不 |
- Pass 當模板測試和深度測試都通過時執行操作
- Fail 當模板測試和深度測試都失敗時執行操作
- ZFail 當模板測試通過而深度測試失敗時執行操作
Pass, Fail, ZFail都是模板操作,其可以設置的操作方式如下
操作 | 描述 |
---|---|
Keep | 保持當前緩衝區的值 |
Zero | 寫入0 |
Replace | 寫入參考值 |
IncrSat | 緩衝區值+1,不能大於255 |
DecrSat | 緩衝區值-1,不能小於0 |
Invert | 所有位取反 ,相當於 ~ |
IncrWrap | 緩衝區值+1,如果緩衝區 已經是255,則寫入0 |
DecrWrap | 緩衝區值-1,如果緩衝區 已經是0,則寫入255 |