UI-Default.shader中_StencilComp与_

2020-07-11  本文已影响0人  雄关漫道从头越

learnopengl 模板测试
ShaderLab: Stencil 简书
ShaderLab: Stencil 官方链接
CompareFunction 枚举
StencilOp 枚举

Stencil(模板测试)处于片元着色器之后,深度测试之前,过程如下:顶点着色器 —> 片元着色器 —> 模板测试 —> 深度测试。模板测试是根据模板缓冲(Stencil Buffer)来进行,通过模板测试来决定是否丢弃该片段。模板测试可以指定比较函数(CompareFunction)来决定当前缓冲的值与引用值的比较方式,同时可以通过指定的操作函数(StencilOp )来决定比较通过后需要做怎样的操作。


CompareFunction&StencilOp

Unity内置的UI-Default.shader就使用到模板测试,如下:


模板属性
模板测试

这里Unity使用了两个枚举分别代替比较函数(CompareFunction)和操作函数(StencilOp ):

CompareFunction
StencilOp
所以在UI-Default.shader的属性中的数值代表的函数如下:
Comparison Functions
0 - Disabled
1 - Never
2 - Less
3 - Equal
4 - LEqual
5 - Greater
6 - NotEqual
7 - GEqual
8 - Always (Default)

Stencil Operations
0 - Keep (Default)
1 - Zero
2 - Replace
3 - IncrSat
4 - DecrSat
5 - Invert
6 - IncrWrap
7 - DecrWrap

上一篇下一篇

猜你喜欢

热点阅读