首页 > 其他分享 >Unity_FlowMap制作水面材质

Unity_FlowMap制作水面材质

时间:2023-02-07 17:58:03浏览次数:70  
标签:贴图 采样 FlowMap Unity 材质 Houdini

Unity FlowMap制作水面材质

今天学习完了TA百人计划的FlowMap相关课程,自己尝试一下制作一个水的材质,实现一个简单的水面效果。

现在记录一下过程。

资源获取

水的贴图下载

水的材质网上有很多,我们可以去adobe的资源网站下载:材质下载(需要FQ)。

image-20230206181046779

是一个这样的效果。

adobe资源导入unity

上面的材质下载完是一个.sbsar拓展名的文件,无法直接使用。为了导入Unity,adobe为我们提供了一个插件:

Substance 3D for Unity

image-20230206235645301

注意不是Substance in Unity,这个插件已经被官方下架了。

Unity安装完这个插件,可以直接把.sbsar的文件拖入Unity,上面的材质球会自动变成这些文件:

image-20230206235908270

包括导入的设置文件,自动生成的材质球,和各种贴图(漫反射贴图,高度图,ao图,法线贴图,金属度贴图等)。

创建一个plane,挂载在上面是这个效果:

image-20230207014933294

制作FlowMap

FlowMap的制作有很多,常用的有FlowMap PainterSubstance Painter - Flow Map PaintingHoudini等,我这里使用的是Houdini(FlowMap Painter也很简单,基本开箱即用)。

Houdini制作FlowMap

Houdini下载安装都很简单,唯一需要注意的是,Houdini不要下载19以上的版本,个人测试18.5没有问题,我这里第一次下载的是Houdini19.5,并且安装了最新的sideFX labs插件,最终在使用Labs Flow Map Visualize这个节点的时候报错了,提示脚本某个函数的变量对不上,本人又是新手不能自己排除故障,只好使用18.5版本,没有报错。

image-20230207000831515

Houdini 的FlowMap生成也很简单,基本一路连下来就行。

image-20230207000910313

grid节点把定点数增多,然后加入flowmap节点:

image-20230207000946193

flowmap节点可以把Normal可视化,然后使用flowmap brush把节点的法线刷一下

image-20230207001108023

基本可以认为这时法线方向就是uv流动方向。

然后flowmap tocolor节点可以把上面修改过法线后的颜色显示出来,最后用maps baker把贴图渲染到电脑磁盘上。

image-20230207001253589

最终效果,免费版Houdini有一个大LOGO。

image-20230207001406660

基本上贴图里颜色一样的块就是局部内流动的块。

Shader制作

把上面的贴图导入Unity,然后就可以使用这些资源实现一个基础的流动的水面效果。

Shader Graph连线

image-20230207003432208

这组节点的意思是使用当前UV采样FlowMap贴图,得到当前UV当前的偏移矢量,在加上当前UV,得到位移后的UV,然后使用这个UV去采样我们需要的贴图即可,由于采样图片得到的结果范围是[0,1](0为贴图全黑的点,1为贴图全白的点),需要映射回[-1,1](-1表示u/v往左/上,1表示u/v往右/下)。把这个矢量乘以一个不断从0到1变化的函数,即可实现循环流动的效果,这个函数突变越少,效果越好。

image-20230207003623508

最简单的周期函数是把Time截取小数部分的函数,图像如下:

image-20230207003746864

但是这个函数每个周期结束到第二个周期开始有一个突变,最终效果也会有一个突然的变化,看起来不是很好

解决方法:可以采样两次,相差0.5个周期,然后施加一个变化的权重,这个权重在0.5秒的时候达到最小,这时第一次采样的位移量刚好最大,第二次采样的位移量到达一半,此时第一次采样完全消失,改为第二次采样的结果,如此循环,就解决了跳变的问题。

完整Shader Graph

image-20230207014408300

效果

这是初步效果,后面可以加入法线贴图,高度图,顶点偏移,反射等实现更好的效果。

标签:贴图,采样,FlowMap,Unity,材质,Houdini
From: https://www.cnblogs.com/luoxiaozhu1998/p/17099274.html

相关文章