【实现100个unity特效之29】实现Unity3D视差地裂效果
文章目录
最终效果
我这做的比较粗糙,大家做个参考就行了

一、使用Blender创建地裂模型
这里我提供两种方法,大家任选其一:
二、unity操作
1、导入模型到unity
纹理贴图这里我们就不提取出来了,这里对我们没有用

2、Stencil Buffer模板缓冲区
Stencil Buffer是一个每像素的掩码缓冲区,用于控制哪些像素应该被渲染或丢弃,这里我们主要是为了在模板缓冲区禁用深度写入ZWrite。Stencil Buffer(模板缓冲区)是Unity渲染管线中的一个重要组成部分,它与Depth Buffer(深度缓冲区)和Color Buffer(颜色缓冲区)一起构成了现代图形渲染的基础。
Stencil Buffer(模板缓冲区)—— 就像"剪纸模具"想象你要在墙上喷绘一个星星图案,你会怎么做?聪明的方法是:
- 先拿硬纸板剪出一个星星形状的洞(这就是Stencil Buffer)
- 把这个带洞的纸板贴在墙上
- 喷漆时,颜料只会通过星星形状的洞留在墙上
在Unity中:
- Stencil Buffer就是那个"带洞的纸板"
- 它决定了哪些像素可以"通过"被画出来
- 你可以设置不同规则:“只有画过1次的地方能通过”、"比2大的数字不能通过"等等
常见用途:
- 制作角色轮廓发光效果
- 实现镜子反射(只在一定区域内显示反射)
- 创建UI遮罩效果
ZWrite(深度写入)—— 就像"记下谁在前面"想象几个人排队拍照:
- 摄影师(Unity)需要记住谁站前面谁站后面(这就是ZWrite)
- 默认情况下,Unity会记录每个物体的前后关系(ZWrite On)
- 当开启ZWrite,前面的人会挡住后面的人
- 当关闭ZWrite,就像所有人都站在同一排,后画的会盖住先画的
为什么有时要关闭ZWrite?
- 做半透明效果时(比如玻璃),需要让后面的物体也能显示
- 制作特殊效果时(比如地裂效果),不想影响其他物体的遮挡关系
两者的配合使用用现实例子比喻: 假设你要在一面破墙上做艺术创作:
- 先用模板(Stencil)标出裂缝区域:“只有这里可以作画”
- 关闭深度记录(ZWrite Off):“裂缝效果不应该影响其他物体的前后关系”
- 在标记区域内绘制立体裂缝效果
这样就能实现:
- 裂缝只出现在指定区域(Stencil控制)
- 裂缝看起来有立体感但不会错误遮挡其他物体(ZWrite Off)
如果你还是不懂什么是Stencil Buffer和ZWrite,建议自行上网查找相关资料深入理解。
2.1 新建两个图层
LayerMask和SeeThrough

地面设置成SeeThrough层,这里我新建一个Plane作为地面

裂缝顶部设置成

2.2 修改URP配置
不透明遮罩取消两个图层的勾选

开启Stencil模板

记得关闭屏幕空间环境光,不然后面模型接缝处会穿帮

下面新增两个Render Objects,按我的配置就行,但是注意unity有bug,设置一次可能并不会生效,记得反复检查一下,配置不对就重新再配置一次就可以了

3、新增shader关闭ZWrite
这shader很简单,这个裂缝不透明,因此无法渲染背后的内容,我们无法看到穿透,因为ZWrite是打开的,但在这个新的Shadert中,我们设置禁用了它
Shader "Custom/DisablezWriteTUT"
{
SubShader{
Tags{
"RenderType"="Opaque"
}
Pass{
ZWrite Off
}
}
}
将这个shader创建一个材质,赋值给顶部,现在我们就有一个漂亮的裂缝效果了

4、创建新无光照shaderGraph

连线图很简单

5、添加裂缝材质
给这个ShaderGraph添加材质,添加给裂缝,配置如下

效果

6、添加底部材质
复制一个材质,放在底部控制亮度,设置如下,底部我们就不需要阴影了,将阴影范围设置成0

效果

7、泛光后处理
后处理知识可以查看:【unity游戏开发入门到精通——通用篇】Post Processing 后处理插件Post-process Volume 和 Volume最全基础使用说明
添加泛光后处理让效果更好

参考
https://www.youtube.com/watch?v=qiAiVa0HtyE&t=194s
专栏推荐
完结
好了,我是向宇,博客地址:https://xiangyu.blog.csdn.net,如果学习过程中遇到任何问题,也欢迎你评论私信找我。
赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!

更多推荐
所有评论(0)