Unity UPP ShaderGrapgh做一个扫光效果

前面学到点东西了,自己做个效果玩玩

首先白嫖一个模型,我是在这个网站找的

免费模型库 – 玩酷CG

选择blender格式下载导入blender,自行调整细节后导出为fbx供unity使用

因为预计到要处理透明等问题。所以尽量选择了一个前后关系复杂的模型

在blender中查看贴图的使用情况,找到模型文件中的各种贴图导入unity

 创建ShaderGrapgh把贴图按照blender中赋值给模型

 

第一步完成,接下来复制这个shadergrapgh,创建扫光效果

创建一个边缘光效果,连接到Emission上

 使用视角与顶点法线的夹角判断光的强度,区分边缘与非边缘,并添加参数控制边缘范围

这里把非边缘赋值为蓝色,边缘赋值为白色,设置为透明物体

 有发现透明物体的传统艺能,剔除混乱,在Build-in中可以使用双pass,一个写深度不写颜色,一个写颜色不写深度解决,但是URP中貌似不鼓励使用多个pass解决问题,参考文章

https://blog.csdn.net/liweizhao/article/details/130857215

Unity官方文档

https://docs.unity3d.com/cn/Packages/com.unity.render-pipelines.universal@12.1/manual/renderer-features/how-to-custom-effect-render-objects.html

这里使用URP的Feature解决问题,按以下步骤

 

 

添加一个RenderObject,因为我们要针对透明物体,事件选择(1)队列选择透明队列,(2)透明物体渲染前,(3)开启深度写入。

这样就可以在针对透明物体(2),在渲染前(1)写入物体深度(3)了

LayerMask选择与模型Layer相同,我这里时Default

现在效果好多了,不会有后面的面透到前面来了

 没点颜色太空虚了,采样纹理图添加参数控制加到Emission上

 

 接下来做扫光,去Substance 3D Designer简单做了一张图,图越好看效果自然也更好看,我这里图省事,而且美术懂得真不多

 思路就是通过添加时间变量采样这张图,让这条线从上到下穿梭于模型

那么uv就选用模型的xy平面即可,这里有两个选择,一种是使用世界坐标计算相对,但是另一种更见单,直接使用物体坐标,这样做是为了避免模型位置不同而导致扫光效果不同

 下面添加时间控制采样,最后值添加颜色、强度控制再加到Emission上即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值