Unity shader笔记04--开关
作者:互联网
Cull off|Back|Front
- Back: 不渲染背对观察者的多边形,剔除背面(背向摄像机的面)
- Front:剔除前面 (朝向摄像机的面)
- Off 不剔除
ZTest:深度测试,开启后测试结果决定片元是否被舍弃,可配置
ZWrite:深度写入,开启后决定片元的深度值是否写入深度缓冲,可配置
- 在开启ZTest下,没有通过测试的片元部分是直接被舍弃,通过测试的片元被保留下来
- 在关闭ZTest下,不存在片元被舍弃的情况,也就是说,关闭深度测试,整个片元是被保留下来的
- 在ZWrite开启状态下,只有保留下来片元深度值才能被写入深度缓冲
- 即:
1.深度测试通过,深度写入开启:写入深度缓冲区,写入颜色缓冲区
2.深度测试通过,深度写入关闭:不写深度缓冲区,写入颜色缓冲区
3.深度测试失败,深度写入开启:不写深度缓冲区,不写颜色缓冲区
4.深度测试失败,深度写入关闭:不写深度缓冲区,不写颜色缓冲区- https://blog.csdn.net/u013477973/article/details/80617787
- ZWrite On | Off
- ZTest Less:深度小于当前缓存则通过
- ZTest Greater:深度大于当前缓存则通过
- ZTest LEqual:深度小于等于当前缓存则通过
- ZTest GEqual:深度大于等于当前缓存则通过
- ZTest Equal:深度等于当前缓存则通过
- ZTest NotEqual:深度不等于当前缓存则通过
- ZTest Always:不论如何都通过
Blend
- Blend Off 关闭混合
- Blend SrcFactor DstFactor :开启混合,SrcFactor 和 DstFactor 为混合因子(其实就是个系数),S是源颜色,D是目的颜色,混合后的颜色Color如下,其rgb和a值都使用同一套混合因子
- One 因子:1
Zero 因子:0
SrcColor 源颜色值
SrcAlpha 源颜色的Alpha值
DstColor 目标颜色值
DstAlpha 目标颜色的Alpha值
OneMinusSrcColor 1-源颜色值
OneMinusSrcAlpha 1-源颜色的Alpha值
OneMinusDstColor 1-目标颜色值
OneMinusDstAlpha 1-目标颜色的Alpha值- BlendOp Operation:Operation是混合操作,下面是一些常用的混合操作:
Add 将源颜色和目的颜色相加(默认的混合操作) Sub 用源颜色减去目的颜色
RevSub 用目的颜色减去源颜色
Min 取源颜色和目的颜色中的较小值,是逐分量比较
Max 取源颜色和目的颜色中的较大值,是逐分量比较
- 几种常见的混合类型,类似Photoshop混合模式中的效果:
//正常(Normal)
Blend SrcAlpha OneMinusSrcAlpha
//柔和相加(Soft Addtive)
Blend OneMinusDstAlpha One
//正片叠底(Multiply),即相乘
Blend DstColor Zero
//两倍相乘(2x Multiply)
Blend DstColor SrcColor
//变暗(Darken)
BlendOp Min
Blend One One
//变亮(Lighten)
BlendOp Max
Blend One One
//滤色(Screen)
Blend OneMinusDstColor One
//线性减淡(Linear Dodge)
Blend One One
标签:颜色,04,ZTest,--,写入,shader,深度,缓冲区,Blend 来源: https://blog.csdn.net/qq_34925263/article/details/116043864