• Home
  • About
    • 黑脸包公 photo

      黑脸包公

      书山有路勤为径,学海无涯苦作舟.

    • Learn More
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

滑落的雨水以及涟漪效果(二)

09 Nov 2018

Reading time ~1 minute

J这是第一部分的延续,所以如果你没有读过,我建议首先去读第一篇,因为这将继续在那个基础上,你需要知道这些设置,以便你知道如何组合最后......

坡度

“斜率感知”功能实际上非常简单,我们所做的只是使用Z轴渐变来混合我们在这篇文章中创建的涟漪效果和条纹效果。

下面你可以看到获得z-渐变的简单方法

结果看起来像这样

我们稍后使用这个结果来混合涟漪和水条纹

纹理设置

所以,如果你还记得上一篇文章,我们使用的纹理设置如下所示,在这部分我们将使用绿色和蓝色通道使水看起来像滴水。.

和法线贴图

对于条纹,我们实际所做的只是将纹理设置为沿xz和yz轴对齐到世界,然后在蓝色通道中平移渐变纹理以创建一些简单的alpha eroision,使得条纹看起来像条纹。

首先,我们创建两个输入参数Streaks_Tiling和Streak_Length。RainSpeed是在最后一部分创建的,但它也将用于条纹

接下来,我们将雨条纹纹理设置为沿xz和yz平面进行世界对齐。我们使用包含条纹图案的绿色通道。

我们使用相同的RB和GB输出作为法线贴图的uv输入。

结果将如下所示

接下来,我们为蓝色通道中的渐变纹理设置​​世界对齐的平移设置</B>

结果将纹理映射到世界空间并沿z轴平移。

现在我们从平移渐变纹理中获取结果,对其进行一些数学运算,然后从绿色通道中的原始世界对齐条纹纹理中减去它。

我们还使用此结果在默认的正常颜色值和World Aligned Normal Result之间进行混合

如果您从StreakMask和Normal中预览结果,您将分别看到以下结果

平移梯度会产生α侵蚀效果,从而产生滴水的错觉

结合涟漪

现在剩下要做的就是使用我们之前在帖子中创建的z-渐变,在此条纹效果和涟漪效果之间进行混合

这是您需要参考之前博客文章的部分,因为我们实际上只是为上一篇博文中的所有函数输出添加了一个lerp,

找到在前一个Post中设置的正常输出,并在纹波法线和条纹法线之间添加线性插值

也做同样的事情

注意:此输出的结果现在将取代所有用于混合波纹蒙版的地方,如Basecolor,Metallic等</B>

而且现在你可以使用一个材质函数,它可以分层到任何现有的着色器,使其看起来像表面正在下雨,带有参数来控制纹波大小,降速等。

这是一个小测试环境,我把它放在一起,以显示着色器在场景中的外观。场景中使用的所有材质都具有分层的RainySurfaceMaterial功能。



Share Tweet +1