unity urp 实现雨水在物体上流动的效果
如何实现原理还是很简单的,还是使用简单的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 实现雨水在物体上流动的效果相关推荐
- [Unity]代码控制在3D物体上播放帧动画
不使用Unity自带的Animation,在3D物体上播放帧动画 图片必须是可以整齐排列的 可以分割的完整的图片. 像这样 不能像这样: 也不能像这样,过于紧凑,不能完整切割 空项目,空场景, 场景中 ...
- Unity TouchScripts实例 - 判断在物体上滑动
使用PressGesture和ReleaseGesture实现检测是否有在物体上滑动 原理:触碰时触发PressGesture,离开时触发ReleaseGesture,比较触碰时和离开时位置的x值即可 ...
- unity 鼠标放置在3D物体上,显示物体名称
做个记录,也方便自己以后查看,大家共同交流 源代码 using System.Collections; using System.Collections.Generic; using UnityEng ...
- unity禁用物体上的脚本或者组件
继承了MonoBehaviour类 transform.GetComponent<Button>().enabled = false; 这样可以禁用物体上的Button组件,想禁用别的组件 ...
- [Unity/URP学习]风格化水体渲染(一)
风格化水体的实现内容 文章目录 风格化水体的实现内容 风格化水体实现过程 1.水体颜色 1.1风格化水体颜色渐变 1.2水体深浅区域 1.2.1开启深度纹理 1.2.2深度纹理采样 1.3水体透明度 ...
- Unity URP中的多Pass Shader和Planer shadow
一 .Unity移动端软阴影技术总结: https://blog.csdn.net/jxw167/article/details/82422891 二. 平面阴影的原理 https://zhuanla ...
- 【游戏开发小技】Unity中实现Dota里的角色技能地面贴花效果(URP | ShaderGraph | Decal)
本文最终效果 文章目录 一.前言 二.环境准备 1.URP环境准备 2.技能范围图案 二.方案一:写Shader实现 1.Shader脚本:UrpDecal.shader 2.材质球 3.创建Cube ...
- 【游戏开发小技】Unity中实现Dota里的角色技能地面贴花效果(URP ShaderGraph Decal)
本文最终效果 文章目录 一.前言 二.环境准备 1.URP环境准备 2.技能范围图案 二.方案一:写Shader实现 1.Shader脚本:UrpDecal.shader 2.材质球 3.创建Cube ...
- Unity URP中的Post-processing
在Unity中,你可以选择不同的渲染管道.渲染管道执行一系列获取场景内容的操作,并在屏幕上显示它们.在高水平上,这些操作包括:Culling,Rendering,Post-processing.不同的 ...
最新文章
- JavaMoney规范(JSR 354)与对应实现解读
- (0106)iOS开发之iOS13 适配
- mongodb @aggregation 返回字段映射不上_MongoDB---基于分布式文件存储的数据库(二)...
- P4284-[SHOI2014]概率充电器【树形dp,换根法,数学期望】
- scala hashmap_如何在Scala中将Hashmap转换为Map?
- 《Java和Android开发学习指南(第2版)》——第2章,第2.10节本章小结
- POJ 3172 (认真读题的题)
- 给你安利一款国产良心软件uTools
- 单链表算法设计(含大厂面试题)
- 你应该需要知道的前端小技巧
- 在Eclipse中使用SDK中的@hide函数
- 如何监控oracle的索引是否使用
- 我在谷歌大脑工作的 18 个月中,是怎样研究强化学习的?
- php 开启 exec,php怎么开启exec()函数?
- 平面解析几何----焦点弦上焦半径长度之比公式
- Android 开发之Okhttp网络请求日志打印
- 大连外国语大学linux主机名,大连外国语大学
- 安卓otto_奥托(Otto)背后的硬件:猴子长毛绒,成为我的声音助手
- DevExpress VCL 一键安装工具
- Matlab实现最小二乘法拟合曲线
热门文章
- 2020PAKDD 阿里巴巴智能运维算法大赛TOP20 ——磁盘故障预测问题比赛思路、难点与问题总结
- 基于准反射学习的哈里斯鹰优化算法
- python + 数学公式 + 图像 表白 LOVE YOU❤
- 教你一招更改视频竖版与横版的技巧
- java学习---类与对象
- keil编译出现错误Undefined symbol __aeabi_assert,解决办法
- [UER #6]逃跑
- 抖音短视频内容该如何创作
- Windows科普:正版盗版系统有何不同?
- ·使用Xtext/Xtend 实现域专用语言DSL(1)