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上即可

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Unity一个流行的游戏开发引擎,它允许开发者创建各种不同类型的游戏和应用程序。在Unity中制作扫光效果是相对简单的。 首先,我们需要创建一个扫光效果所需的材质。可以使用Shader来定义材质的外观和行为。在Unity中,有很多内置的Shader,也可以通过编写自定义的Shader来实现我们想要的效果。对于扫光效果,可以使用一个渐变的颜色来模拟光线的效果。 接下来,我们需要在场景中创建一个灯光对象。可以使用Unity的灯光组件来实现这一点。选择一个适当的灯光类型,如点光源或聚光灯,根据场景的需求进行设置。可以使用灯光的颜色和强度参数来调整扫光效果。 然后,将创建的材质应用到需要扫光效果的对象上。可以使用Renderer组件将材质赋予对象。确保将材质的渲染模式设置为透明,以便光线可以穿过对象。 最后,可以使用脚本来控制扫光效果的运动和动画。可以使用Unity的内置动画系统或编写自定义的脚本来实现这一点。使用脚本可以控制光线的方向、速度和强度,并为用户提供交互性。 总结而言,Unity制作扫光效果可以通过创建适当的材质、灯光和脚本来实现。通过调整参数和添加动画,可以使扫光效果更加生动和逼真。希望这些步骤能够帮助您在Unity中实现您的扫光效果。 ### 回答2: Unity是一款非常强大的游戏引擎,它支持制作各种各样的特效,其中包括扫光效果。 要在Unity中制作扫光效果,首先需要创建一个适合的光源。在Unity中,可以使用Directional Light(方向光)或Spot Light(聚光灯)来模拟光线的传播。Directional Light适用于像太阳这样的光源,而Spot Light适用于有特定方向和范围的光源,比如手电筒。 接下来,可以通过调整光源的参数来使其具有扫光效果。在Unity的Inspector面板中,可以设置光源的角度(Spot Angle)和范围(Range),从而控制光源照射的方向和范围。 此外,可以通过添加粒子系统来增强扫光效果。可以在Unity的Hierarchy面板中右键点击并选择"Effects" -> "Particle System",然后在场景中添加一个粒子系统。在粒子系统的属性面板中,可以调整粒子的形状、大小、颜色等参数,以获得更加逼真的扫光效果。 在制作扫光效果时,还可以使用其他的特效工具,如Post-processing Stack或Shader Graph。通过这些工具,可以给扫光添加更多的视觉效果,如模糊、颜色渐变等,以使扫光效果更加生动和吸引人。 总之,要在Unity中制作扫光效果,需要通过设置和调整光源的参数,添加粒子系统,并结合其他特效工具,以获得所需的效果。通过不断的调试和优化,可以制作出非常出色的扫光效果,使游戏或场景更加生动和引人注目。 ### 回答3: Unity 是一款功能强大的游戏开发引擎,可以用来制作各种各样的特效,包括扫光效果。 要制作扫光效果,首先需要创建一个空对象,作为扫光的物体。然后,在该物体上添加一个具有材质的平面,这个材质将会用来渲染扫光效果。 接下来,我们需要为创建的材质添加一个自定义的着色器。这个着色器将包含扫光的逻辑和效果。可以使用Unity自带的着色器语言(ShaderLab)来编写自定义的着色器代码。在着色器的代码中,我们可以定义扫光的颜色、强度、宽度等属性,以及控制扫光的动画效果。 当着色器代码编写完成后,将其添加到材质上。然后,将这个材质应用到创建的平面上,这样扫光效果就会在游戏场景中显示出来。 为了让扫光在游戏中有更加真实的效果,可以使用一些其他的技巧。比如,可以给扫光物体添加粒子系统,使得扫光有一种粒子的效果。还可以通过动画控制扫光的运动方向和速度,使得扫光动态地在游戏场景中移动。 最后,在光源和接收扫光的物体之间需要适当设置碰撞关系,保证扫光的遮挡效果正确渲染。 总而言之,Unity可以通过使用自定义的着色器、材质和粒子系统来制作出令人惊艳的扫光效果。同时,利用动画和碰撞关系的设置可以增强扫光的真实感和交互性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值