魔镜世界

魔镜世界

二月 13, 2022

魔镜世界

在这里插入图片描述在这里插入图片描述

渲染队列和颜色遮罩

Rendering Queue

从小到大进行排序

几何体 2000

Alpha Test 2450

Transparent 3000

1
"Queue" = "AlphaTest+10"

Color Mask

1
2
ColorMask 0
ColorMask 相应的颜色通道

模板测试(Stencil)

Reference 参数便于判端和筛选

Comparison 判断方式‘

Pass 面 通过之后的进行操作,图中是替换的意思

Fail 失败之后的操作

ZFail 深度测试失败的操作

1
2
3
4
5
6
Stencil
{
Ref 1
Comp always
Pass Replace
}

深度测试(Depth)

1
2
3
4
5
6
7
8
ZWrite Off//深度测试的开关
ZTest Less//深度小于当前缓存则通过
ZTest Greater//深度大于当前缓存则通过
ZTest LEqual//深度小于等于当前缓存则通过
ZTest GEqual//深度大于等于当前缓存则通过
ZTest Equal//深度等于当前缓存则通过
ZTest NotEqual//深度不等于当前缓存则通过
ZTest Always//不论如何都通过

制作过程

将材质导入dome

课程材料略

制作镜子Shader

ASE图

在这里插入图片描述在这里插入图片描述

核心代码

1
2
3
4
5
6
7
8
9
10
11
Tags { "Queue" = "AlphaTest+10"  }
Pass
{
ColorMask 0
Stencil{
Ref 1
Comp always
Pass Replace
}
ZWrite Off
}

制作镜内世界

ASE图

在这里插入图片描述

核心代码

1
2
3
4
5
Tags { "Queue" = "AlphaTest+20" }
Stencil{
Ref 1
Comp equal
}

制作深度测试球

这一步是为了当模板测试未通过物体出现在魔镜后会出现在魔镜中的情况

在这里插入图片描述

ASE图

在这里插入图片描述在这里插入图片描述

核心代码

1
2
3
4
5
6
7
Tags { "Queue"="AlphaTest+15" }
LOD 100
Stencil{
Ref 1
Comp equal
}
ZTest always

完成效果

在这里插入图片描述