Shader Stencil

tech2023-11-18  92

对于每一个像素值来说,其中都会存储一个模板值(像是深度值) 模板测试一般指 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(值减少会溢出)

最新回复(0)