[Unity] ShaderGraph实现一块破洞的裂纹玻璃

        虽然最开始的初衷是健忘症患者备忘录,不过博客越写越多,收获了许多点赞收藏,学习记录的热情也一路猛涨,感谢大家ヾ(◍°∇°◍)ノ゙~

最终效果如下,这个案例主要是用到了Blend混合和Alpha透明效果。

这是案例中用到的贴图素材,一张玻璃,一张裂纹,一张破洞口。

 

首先将玻璃和裂纹的两张Texture进项Add混合

很轻易就能得到下图所示的叠加效果

        选中Fragment切换到GraphSettings,将Surface Type改为Transparent。可以看到原先的节点下面多出了Alpha的透明节点。

 将破洞Texture连接到Alpha,保存过后就可以得到如下所示的破碎玻璃效果。SoEasy~

虽然很简单完成了效果,不过知识点并没有结束。


1、Sub Graph

        连连看的过程中 ,会频繁使用Sample Texture 2D这个节点,重复且垄长的窗口会非常碍于后期管理阅读,这时就需要用到Sub Graph来编辑管理。

        新建Sub Graph后增加取Texture的操作节点,保存过后就可以在Create Node中看到刚刚创建的Graph 。回到主Graph,就可以把Sample Texture 2D换掉啦。

 2、Blend

        由于案例中的玻璃素材并不复杂,所以用Add节点也可以完成。但实际工作中,两张素材的契合度并不会如此完美。

如下图所示,会需要用到多层的叠加与计算,才能得到合适的效果。

        就像PS中的混合模式一样,ShaderGraph中也同样拥有混合效果。在Graph中新建Blend节点,可以看到Mode中的各种混合模式与PS中的相似(详细效果不多赘述,大家自己试试就知道了)。

  • 15
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Shader玻璃效果可以通过Unity中的Shader实现。在实现过程中,我们可以使用一些技术和代码来模拟玻璃的特性。其中,引用提到的Unity Shader模拟玻璃效果的示例代码非常详细,可以作为参考。 首先,在Shader的SubShader标签中,我们可以将渲染队列设置为Transparent,并将RenderType设置为Opaque。设置渲染队列为Transparent可以确保在渲染该物体时,其他不透明的物体已经被渲染到屏幕上,以便正确呈现“透过玻璃看到的图像”。而设置RenderType则是为了在使用着色器替换(ShaderReplacement)时,该物体可以在需要时被正确渲染,特别是在需要获得摄像机的深度和法线纹理时。 其次,在代码中,我们可以翻转纹理坐标的x分量,因为镜子里显示的图像通常是左右相反的。同时,我们还需要将创建的MirrorTexture渲染纹理拖曳到材质的Main Tex属性中,以实现玻璃效果。 最后,引用提供了一个示例代码,可以用来实现Shader玻璃效果。在代码中,我们可以定义顶点和片段着色器,并在顶点着色器中进行纹理坐标的反转,以及在片段着色器中返回纹理的颜色值,从而实现玻璃效果。 总结起来,要实现Shader玻璃效果,我们需要设置渲染队列和RenderType,并在代码中进行纹理坐标的反转和纹理的采样。以上是一种实现玻璃效果的示例方式,具体的实现方式还可以根据需求进行调整和优化。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超龄魔法少女

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值