找回密码
 立即注册
查看: 548|回复: 0

[未分类] Unity ShaderGraph——流动变色效果(二)

[复制链接]
发表于 2020-11-25 09:30 | 显示全部楼层 |阅读模式

流动变色效果
https://www.zhihu.com/video/1152881525430231040
  今天带来Unity ShaderGraph——流动变色效果的第二期,这一期我们将接着上一期的内容完成流动变色效果,并实际的运用到物体上去,最终完成文章开头视频所展示的效果。没有看到上一期文章的可以通过下面的链接前往,这里作者使用的是unity2019版本,创建的是PBR Graph,如果有不明白的,可以先看一些关于ShaderGraph的简介。作者也是小白一枚,文中有错误或是措辞不当望大家见谅。
Unity ShaderGraph——流动变色效果(一)
    那现在开始正题,在上一期中我们已经完成一个基本的向一边蔓延的环形波动效果,使用了中心点Center去控制波动位移,并且只是固定了单一的切线方向,现在我们来优化一下效果,达到Center只是控制波动的发生位置,由另一个属性step去控制环形波动向两边蔓延。所以我修改了下这一块的节点
用step变量去控制切线分割区域,也方便之后颜色的过渡切换制作


接下来是制作环形波动向两边蔓延,与上一期做法类似,只是在测试效果的时候,发现cos比sin曲线的效果更符合我们的要求。
测试发现cos曲线效果符合我们要做的效果


  自定义切线位置可以使用向量夹角公式去计算:cosθ=向量a×向量b/|向量a|×|向量b|
  切线相对于中心来说是垂直的,所以角度为90°,我们在知道角度和一条向量的情况就可以用公式推出另一条向量,也就是切线。下面是公式转换成节点的形式


通过向量夹角公式变形,可以求到我们所需的切线位置
至于颜色则比较简单了,创建两个颜色变量做插值,为了拿到比较好的过渡效果,我这里先将两个颜色做了个0.5的插值,再用之前提出的分割线再做一次插值,这里实现方法很多,可以自己尝试。
  好了,到这里为止,我们的效果已经基本完成了,可以根据参数去调节环形波动的效果,文章开头的视频,是我将材质效果附加到了车漆上完成的效果,可以自行尝试,根据不同的情况和物体,调节参数。效果并没有很完美,可以再细致的的优化和增加相应的表现效果,这里就不一一再说了。
  虽然这样已经算完成了一个材质的表现效果,但这不算完结,虽然可以调节参数和颜色,达到效果的展示,但调节起来非常的麻烦,如果就这样丢到项目或者作品里,肯定不理想,所以下一期,我们试着用脚本去写一个颜色切换收集器,来控制我们制作的shader,完成我们最终想要的效果展示。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-4-29 21:28 , Processed in 0.069257 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表