【UnityShader】模板Stencil测试

模板测试语法

一般来说,stencil完整语法格式如下:

stencil{  
    Ref referenceValue  
    ReadMask  readMask  
    WriteMask writeMask  
    Comp comparisonFunction  
    Pass stencilOperation  
    Fail stencilOperation  
}  
    ZFail stencilOperation  

模板测试判断依据


和深度测试一样,在unity中,每个像素的模板测试也有它自己一套独立的依据,具体公式如下:


if(referenceValue&readMask comparisonFunction stencilBufferValue&readMask

通过像素

else

抛弃像素


在这个公式中,主要分comparisonFunction的左边部分和右边部分


referenceValue是有Ref来定义的,这个是由程序员来定义的,readMask是模板值读取掩码,它和referenceValue进行按位与(&)操作作为公式左边的结果,默认值为255,即按位与(&)的结果就是referenceValue本身。


Ref referenceValue

Ref用来设定参考值referenceValue,这个值将用来与模板缓冲中的值进行比较。referenceValue是一个取值范围位0-255的整数。

ReadMask

ReadMask 从字面意思的理解就是读遮罩,readMask将和referenceValue以及stencilBufferValue进行按位与(&)操作,readMask取值范围也是0-255的整数,默认值为255,二进制位11111111,即读取的时候不对referenceValue和stencilBufferValue产生效果,读取的还是原始值。


不写了 都是转载的 https://blog.csdn.net/u011047171/article/details/46928463#t4


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值