对于每一个像素值来说,其中都会存储一个模板值(像是深度值)
模板测试一般指 stencil buffer与自定义的Ref相比较的结果。模板测试时在ZTest深度测试之前测试的,如果当前像素没有通过模板测试,则会直接跳过ZTest
for example:
stencil{
Ref 2//stencilBuffer的默认值为0
Comp Equal//表示通过模板测试的条件,这里表示只有等于2的像素才算是通过测试 除了Equal、还有Greater、Less、Always、Never等
****这里很重要的是Less是ref小于stencil buffer中的值
Pass keep//通过模板测试和深度测试的像素保留它的模板值
Fail decrWarp//没有通过模板测试的像素,循环自减
ZFail keep//通过模板测试但是没有通过深度测试的像素保持不变
}
关键词:
keep:保持
zero:归零
Replace:拿ref代替buffer
IncrSat:值增加1但是不溢出(不溢出的意思是如果值255就不再增加)
DecrSat:只减少1但是不溢出(值为0就不再减少)
Invert:翻转所有的位(1会变成254)
IncrWarp(值增加会溢出)
DecrWrap(值减少会溢出)