先把代码摆在这,有空再分析

Shader "Unlit/Window"
{Properties{_MainTex ("Texture", 2D) = "white" {}_Size("Size", float) = 1_T("Time", float) = 1_Distortion("Distortion",range(-5,5))=1_Blur("Blur",range(0,1))=1}SubShader{Tags { "RenderType"="Opaque" "Queue"="Transparent"}LOD 100GrabPass{"_GrabTexture"}Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag//#pragma target 3.0// make fog work#pragma multi_compile_fog#define S(a,b,t) smoothstep(a,b,t)#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;float4 grabUv : TEXCOORD1;UNITY_FOG_COORDS(1)float4 vertex : SV_POSITION;};sampler2D _MainTex,_GrabTexture;float4 _MainTex_ST;float _Size, _T, _Distortion,_Blur;v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = TRANSFORM_TEX(v.uv, _MainTex);o.grabUv = UNITY_PROJ_COORD(ComputeGrabScreenPos(o.vertex));UNITY_TRANSFER_FOG(o,o.vertex);return o;}//噪波float N21(float2 p) {p = frac(p*float2(123.34,345.45));p += dot(p,p+34.345);return frac(p.x*p.y);}float3 Layer(float2 UV, float t) {float2 aspect = float2(2, 1);float2 uv = UV * _Size * aspect;uv.y += t * 0.25;float2 gv = frac(uv) - 0.5;float2 id = floor(uv);//是每个区域的水滴时间随机float n = N21(id);//0-1t += n * 6.3254;float w = UV.y * 10;float x = (n - 0.5) * 0.8;//左右偏移 -0.4,0.4x += (0.4 - abs(x)) * sin(3 * w) * pow(sin(w), 6) * 0.45;//轨迹float y = -sin(t + sin(t + sin(t) * 0.5)) * 0.45;//改变雨滴形状y -= pow(gv.x - x, 2);//雨点float2 dropPos = (gv - float2(x, y)) / aspect;float drop = S(0.05, 0.03, length(dropPos));//水痕float2 trailPos = (gv - float2(x, t * 0.25)) / aspect;trailPos.y = (frac(trailPos.y * 8) - 0.5) / 8;float trail = S(0.05, 0.01, length(trailPos));float fogTrail = S(-0.05, 0.05, dropPos.y);fogTrail *= S(0.5, y, gv.y);trail *= fogTrail;fogTrail *= S(0.05, 0.04, abs(dropPos.x));//水痕雾气//col += fogTrail * 0.5;//col += trail;//col += drop;float2 offs = drop * dropPos + trail * trailPos;//offsetreturn float3(offs,fogTrail);}fixed4 frag(v2f i) : SV_Target{float t = fmod( _Time.y+_T,7200);float4 col = 0;float3 drops = Layer(i.uv,t);drops += Layer(i.uv * 1.14 + 7.21, t);drops += Layer(i.uv * 1.24 + 1.81, t);drops += Layer(i.uv * 1.4 - 5.01, t);//if (gv.x > 0.48 || gv.y > 0.49) col = float4(1, 0, 0, 1);  //框//测试//col *= 0; col += N21(id);// col.rg = id * 0.1;//col = tex2D(_MainTex,i.uv+offs*_Distortion);//col = tex2Dlod(_MainTex,float4(i.uv + drops.xy * _Distortion,0,blur) );float blur = _Blur * 7 * (1 - drops.z);float2 projUv = i.grabUv.xy / i.grabUv.w;projUv += drops.xy * _Distortion;blur *= 0.01;const float numSamples = 16;float a = N21(i.uv)*6.25984;for (float i = 0; i < numSamples; i++){   float2 offs = float2(sin(a),cos(a))*blur;float d = frac(sin((i+1)*546.)*5424.);d = sqrt(d);offs *= d;col += tex2D(_GrabTexture, projUv+offs);a++;}col /= numSamples;return col;}ENDCG}}
}

玻璃演示

Unity_Shader带雨痕的玻璃(1)相关推荐

  1. 如何判断飞机的年限_技术流带你鉴定前风挡玻璃更换,不再使用日期判断!

    ​ 这又是一篇关于前风挡玻璃鉴定的文章,我记得在二手车鉴定微信公众号里面已经发布好几篇这样的文章了,当然每篇文章的住重点不同,今天这一篇应该是完结篇,它们在一起能组成一套玻璃更换系列专题课程: 我们回 ...

  2. 【Python教程】雨痕 的《Python学习笔记》(附脑图)

    本文转自至:http://www.pythoner.com/148.html 近日,在某微博上看到有人推荐了这本作者是 雨痕 的<Python学习笔记>,从github上下载下来看了下,确 ...

  3. 惠普HP LaserJet Pro 400-M401d 打印机打印出的纸出现雨水滴在玻璃的现象!!

    今天总装车间六线一台打印合格证的打印机打印出类似雨水滴在玻璃的画面,排除了一些原因,终于解决了,原来是硒鼓漏粉导致,整体更换了一个墨盒就好了.

  4. 雨课堂python答案_带雨字好听的名字大全

    雨,象形字,一象天,冂象云,水从云层落下.除了字面上的意思,还有比喻教导之言,教泽,比喻朋友,譬喻密集等含义.下面就来详细看看带雨字好听的名字大全吧. 带雨字好听的名字大全 >>>雨 ...

  5. 02.2跟雨痕看go源码- 并发清理与三色标记

    据说这是go优化最狠的地方. http://blog.csdn.net/erlib/article/details/51850912 大意是说twitch.tv觉得一次标记的STW(stop the ...

  6. 跟雨痕大大看golang源码-01初始化

    最近看了下的雨痕大大写的go1.5源码剖析的pdf,觉得有必要写点东西来巩固一下. 本人水平有限,第一次写,大家轻喷啊. 01初始化 一开始雨痕大大就通过汇编代码找到了初始化里面几个关键的函数. ru ...

  7. golang-阅读雨痕大神的Go语言学习笔记的心得

    golang-阅读雨痕大神的Go语言学习笔记的心得 第一章 概述 1.1 go与java中的局部变量初始化问题 1.2 golang中实现生产者消费者模型,利用管道进行数据通信 第二章 类型 2.1 ...

  8. 雨痕大神的《学习笔记系列》

    雨痕大神的<学习笔记>可以在他的GitHub(https://github.com/qyuhen/book)下载,7000+的Star,足以证明认可度. 笔记系列陆陆续续在出版,已出版的有 ...

  9. python语言描述思维导图_雨痕 的《Python学习笔记》--附脑图(转)

    近日,在某微博上看到有人推荐了 雨痕 的<Python学习笔记>,从github上下载下来看了下,确实很不错. 注意,这本学习笔记不适合Python新手学习. 从目录上看,并不能看出这本笔 ...

最新文章

  1. 3D中OBJ文件格式详解
  2. springboot aop + logback + 统一异常处理 打印日志
  3. python打开指定文件-Python获取指定文件夹下的文件
  4. Java parallel control
  5. 一道 3 行代码的 Python面试题,我懵逼了一天
  6. 关于FD.io VPP的最新消息
  7. 一招教你使用注解处理幂等问题 8种方案解决重复提交
  8. 行内元素多出的空白文本节点的解决方法
  9. jdbc增删改查_JDBC和MyBaits之争,Debug告诉你谁更胜一筹
  10. 第十五周项目3-在OJ上玩指针
  11. SQL盲注(原理概述、分类)
  12. SpringBoot入门项目——holleWorld
  13. WiFi通信模块框图
  14. 基于小程序同城交易系统设计 同城小程序校园二手交易小程序毕业设计课题选题毕设毕业设计论文
  15. python画图修改背景颜色_如何在 Matplotlib 中更改绘图背景的实现
  16. Python到底是干啥的?
  17. 小组项目具体分工情况(Web.ui相关)
  18. linux 系统开发
  19. COSCon'22@Beijing | 北京分会场等你赴约
  20. 【JZOJ4884】【NOIP2016提高A组集训第12场11.10】图的半径

热门文章

  1. eclipse皮肤怎么修改 eclipse皮肤修改教程
  2. layui Table 设置title 字体加粗
  3. 注册交管12123服务器异常,交管12123服务器异常是怎么回事
  4. 大学生如何参加创新创业竞赛、编写项目计划书?(超详细博客链接整合,佛系更新中)
  5. Android悬浮窗播放视频
  6. 【Web服务器】Apache网页优化
  7. 中国电信天翼U盾产品荣获第三届网络安全国家标准优秀应用案例二等奖
  8. vue实现登录、注册、退出、跳转等功能,简单实用
  9. 行业洞见丨Discord 狂奔的背后与网易云信「圈组」的长期主义
  10. 抖音关键词搜索排名优化如何布局操作