Material101-Lec13-18 Rian Shader

本文详细介绍了Material101-Lec13-18中的雨效Shader实现,涵盖Wet Function、RainDrop和Ripple Function等关键部分。通过调整Desaturation和Saturation实现物体表面的湿度效果,利用RainDrop节点创建逼真的雨滴动画,而Ripple Function则用于生成水波纹的动态效果。整个过程涉及法线贴图、蒙版处理、时间和空间变换等多个技术要点。
摘要由CSDN通过智能技术生成

Material101-Lec13-18 Rian Shader

Wet Function

思路

  • 一般下完雨后,物体表面颜色的纯度会饱和一点,所以用Desaturation乘以一个负数来让饱和度上升,
  • 但是如果物体比较吸水,那他就会变暗,所以再将颜色范围限制为[0-1]后,再乘以0.5让颜色变暗
  • 所以就用Lerp混合原本的颜色、粗糙度、反射,变纯后的颜色、粗糙度、反射
  • 用wet控制Mask,再加上一个Porousness,控制物体表面是否是吸水的,吸水的会变暗

节点

在这里插入图片描述

补充

Desaturation
  • 去色,会生成一个单调柔和的灰度图
  • 当乘以负数时,就会让颜色变饱和
Saturation
  • 将值限定在0与1之间。小于0的值被提升到0;大于1的值降低为1;0到1之间(包括0和1在内)的值保持不变。在大多数现代图形硬件上,Saturate的指令成本几乎是免费的,所以您可以在任何时候使用该节点来将输入或输出值限制在0到1之间,而不影响您的材质的性能。

RainDrop

思路

  • 雨滴贴图里面R和G通道存的是法线贴图的x,y坐标。B和A通道存的是雨滴的蒙版
  1. 用b通道存的mask贴图减去时间,再Frac,可以出现雨滴慢慢消失的效果,同时B通道存的贴图的灰度值不同,就可以出现雨滴出现的先后顺序不同
    在这里插入图片描述

  2. 因为存的mask比较粗糙,所以还需要再进行一次去边缘,在A通道乘2减1后,贴图刚好就是大的雨滴比较清晰的mask,所以将上一步运算的结果乘以这个mask就可以将边缘去除
    在这里插入图片描述

  3. A通道存的是小雨滴贴图的mask,和比较清晰的大雨滴的mask,因为贴图存的数据都是[0~1],如果直接反转小雨滴的mask是不会变白的,所以乘2减1将mask的范围变为[-1~1],再反转。因为有灰度值,所以再power,1还是1,0还是0,小数会无限接近0

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 将第二步和第三步相加,就可以得到大的雨滴在慢慢消失又突然出现,小的雨滴一直存在的mask
  2. 因为雨滴是不会落到物体背面的,所以就需要用物体的法线的B通道来进行控制,贴图存的是切线空间的贴图,需要用Transform节点转换空间,变为世界空间,再用saturate节点将小于0的变为0,就可以得到一个物体背面是黑的mask,再乘以第四步,得到物体向上的面不断生成雨滴的效果
  3. 将贴图的R和G通道用append组成法线贴图的x和y坐标的贴图,乘以第五步得到的mask,再append一个常量1,组成法线贴图
  4. 将第5步用power开根号0.1次方,让物体原本是接近0的变大,再1-x进行反转,让有雨滴的地方变暗,粗糙度就会降低

节点

在这里插入图片描述

RainDrip

思路

流淌的雨滴只能是竖直流淌下来,所以不论物体怎么变化,贴图永远应该是从x方向或者y方向投射到物体上的 ,所以就需要绝对世界位置来控制投射的方向。乘以一个Vector3 缩小向量来控制Tiling,

节点

在这里插入图片描述

Ripple Function

节点

在这里插入图片描述

思路

  • 利用时间的增长,时间添加了Frac,然后再-1,加上Mask就可以让Mask产生生长动画,然后用clamp控制范围,再用sin函数产生三条涟漪
  • 雨不可能是同时落下的,所以就将时间加了alpha通道,让涟漪开始的先后顺序不同,越白,越先开始
  • 涟漪应该慢慢的消失,所以就
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值