如何实现原理还是很简单的,还是使用简单的uv偏移实现即可。
首先,我们需要一张雨滴流向的贴图,和法向贴图。

配套的法向贴图,让雨水的效果更加明显

在这里,我还加上了对贴图的旋转,ase里面节点叫rotator,直接把节点的代码拷贝出来的。然后为了保证密度,还加上的tillingoffset

float cos23 = cos(_RainRotate * PI);
float sin23 = sin(_RainRotate * PI);
float2 rotator = mul(UV - _RainAnchor, float2x2(cos23, -sin23, sin23, cos23)) + _RainAnchor;
rotator = rotator * _RainMask_ST.xy + _RainMask_ST.zw;
half rain = SAMPLE_TEXTURE2D(_RainMask, sampler_RainMask, rotator).r;

获取雨的代码就是这样的。
得出来的结果就是:

然后我们可以把法线加上,增加渐变过渡,这个我在这里就不加了。

它的路线有了,那么我们怎么让雨水流动起来呢。

这是一张渐变图。我使用time让其偏移起来

half2 rainMaskUV = rotator + _TimeParameters.x * _RainDir * _RainSpeed * 0.1;
half rainMask = SAMPLE_TEXTURE2D(_RainMask, sampler_RainMask, rainMaskUV).g;
rainMask = saturate(pow(rainMask, 8));

然后增强一下对比度,效果是这样的

它们就动了起来,然后我们把它们一合并,这就完成了,动起来了。

rainMask = saturate(rain - rainMask);

unity urp 实现雨水在物体上流动的效果相关推荐

  1. [Unity]代码控制在3D物体上播放帧动画

    不使用Unity自带的Animation,在3D物体上播放帧动画 图片必须是可以整齐排列的 可以分割的完整的图片. 像这样 不能像这样: 也不能像这样,过于紧凑,不能完整切割 空项目,空场景, 场景中 ...

  2. Unity TouchScripts实例 - 判断在物体上滑动

    使用PressGesture和ReleaseGesture实现检测是否有在物体上滑动 原理:触碰时触发PressGesture,离开时触发ReleaseGesture,比较触碰时和离开时位置的x值即可 ...

  3. unity 鼠标放置在3D物体上,显示物体名称

    做个记录,也方便自己以后查看,大家共同交流 源代码 using System.Collections; using System.Collections.Generic; using UnityEng ...

  4. unity禁用物体上的脚本或者组件

    继承了MonoBehaviour类 transform.GetComponent<Button>().enabled = false; 这样可以禁用物体上的Button组件,想禁用别的组件 ...

  5. [Unity/URP学习]风格化水体渲染(一)

    风格化水体的实现内容 文章目录 风格化水体的实现内容 风格化水体实现过程 1.水体颜色 1.1风格化水体颜色渐变 1.2水体深浅区域 1.2.1开启深度纹理 1.2.2深度纹理采样 1.3水体透明度 ...

  6. Unity URP中的多Pass Shader和Planer shadow

    一 .Unity移动端软阴影技术总结: https://blog.csdn.net/jxw167/article/details/82422891 二. 平面阴影的原理 https://zhuanla ...

  7. 【游戏开发小技】Unity中实现Dota里的角色技能地面贴花效果(URP | ShaderGraph | Decal)

    本文最终效果 文章目录 一.前言 二.环境准备 1.URP环境准备 2.技能范围图案 二.方案一:写Shader实现 1.Shader脚本:UrpDecal.shader 2.材质球 3.创建Cube ...

  8. 【游戏开发小技】Unity中实现Dota里的角色技能地面贴花效果(URP ShaderGraph Decal)

    本文最终效果 文章目录 一.前言 二.环境准备 1.URP环境准备 2.技能范围图案 二.方案一:写Shader实现 1.Shader脚本:UrpDecal.shader 2.材质球 3.创建Cube ...

  9. Unity URP中的Post-processing

    在Unity中,你可以选择不同的渲染管道.渲染管道执行一系列获取场景内容的操作,并在屏幕上显示它们.在高水平上,这些操作包括:Culling,Rendering,Post-processing.不同的 ...

最新文章

  1. JavaMoney规范(JSR 354)与对应实现解读
  2. (0106)iOS开发之iOS13 适配
  3. mongodb @aggregation 返回字段映射不上_MongoDB---基于分布式文件存储的数据库(二)...
  4. P4284-[SHOI2014]概率充电器【树形dp,换根法,数学期望】
  5. scala hashmap_如何在Scala中将Hashmap转换为Map?
  6. 《Java和Android开发学习指南(第2版)》——第2章,第2.10节本章小结
  7. POJ 3172 (认真读题的题)
  8. 给你安利一款国产良心软件uTools
  9. 单链表算法设计(含大厂面试题)
  10. 你应该需要知道的前端小技巧
  11. 在Eclipse中使用SDK中的@hide函数
  12. 如何监控oracle的索引是否使用
  13. 我在谷歌大脑工作的 18 个月中,是怎样研究强化学习的?
  14. php 开启 exec,php怎么开启exec()函数?
  15. 平面解析几何----焦点弦上焦半径长度之比公式
  16. Android 开发之Okhttp网络请求日志打印
  17. 大连外国语大学linux主机名,大连外国语大学
  18. 安卓otto_奥托(Otto)背后的硬件:猴子长毛绒,成为我的声音助手
  19. DevExpress VCL 一键安装工具
  20. Matlab实现最小二乘法拟合曲线

热门文章

  1. 2020PAKDD 阿里巴巴智能运维算法大赛TOP20 ——磁盘故障预测问题比赛思路、难点与问题总结
  2. 基于准反射学习的哈里斯鹰优化算法
  3. python + 数学公式 + 图像 表白 LOVE YOU❤
  4. 教你一招更改视频竖版与横版的技巧
  5. java学习---类与对象
  6. keil编译出现错误Undefined symbol __aeabi_assert,解决办法
  7. [UER #6]逃跑
  8. 抖音短视频内容该如何创作
  9. Windows科普:正版盗版系统有何不同?
  10. ·使用Xtext/Xtend 实现域专用语言DSL(1)