<Shader> 最终版本的水纹效果
来源:互联网 发布:淘宝培训机构 编辑:程序博客网 时间:2024/05/17 03:02
Shader "Custom/RippleShader"{ Properties {// _Color("Base Color", Color) = (1,1,1,1) _MainTex("Base(RGB)", 2D) = "white" {} _NoiseTex ("Wave Noise", 2D) = "white" {}//噪波贴图 _Color ("Tint", Color) = (1,1,1,1) _Indentity ("Indentity", float) = 0.1//表示水波的扭曲强度 _SpeedX ("WaveSpeedX", float) = 0.08//噪波贴图延X方向的移动速度 _SpeedY ("WaveSpeedY", float) = 0.04//噪波贴图延Y方向的移动速度 _AlphaFadeIn ("AlphaFadeIn", float) = 0.0//水波的淡入位置 _AlphaFadeOut ("AlphaFadeOut", float) = 1.0//水波的淡出位置 _TwistFadeIn ("TwistFadeIn", float) = 1.0//扭曲的淡入位置 _TwistFadeOut ("TwistFadeOut", float) = 1.01//扭曲的淡出位置 _TwistFadeInIndentity ("TwistFadeInIndentity", float) = 1.0//扭曲的淡入强度 _TwistFadeOutIndentity ("TwistFadeOutIndentity", float) = 1.0//扭曲的淡出强度 } SubShader { tags{"Queue" = "Transparent" "RenderType" = "Transparent" "IgnoreProjector" = "True"} Blend SrcAlpha OneMinusSrcAlpha Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc"// float4 _Color; sampler2D _MainTex; sampler2D _NoiseTex; fixed4 _Color; half _Indentity; half _SpeedX; half _SpeedY; float _AlphaFadeIn; float _AlphaFadeOut; half _TwistFadeIn; half _TwistFadeOut; fixed _TwistFadeInIndentity; fixed _TwistFadeOutIndentity; struct v2f { float4 pos:POSITION; float4 uv:TEXCOORD0; float4 color:COLOR; }; struct appdata{ float4 vertex : POSITION; float4 texcoord : TEXCOORD; float4 color : COLOR; }; v2f vert(appdata v) { v2f o; o.pos = mul(UNITY_MATRIX_MVP, v.vertex); o.uv = v.texcoord; o.color = v.color; return o; } half4 frag(v2f i):COLOR { //对淡入强度和淡出强度的插值 fixed fadeT = saturate((_TwistFadeOut - i.uv.y) / (_TwistFadeOut - _TwistFadeIn)); float2 tuv = (i.uv - float2(0.5, 0)) * fixed2(lerp(_TwistFadeOutIndentity, _TwistFadeInIndentity, fadeT), 1) + float2(0.5, 0); //计算噪波贴图的RG值,得到扭曲UV, float2 waveOffset = (tex2D(_NoiseTex, i.uv.xy + float2(0, _Time.y * _SpeedY)).rg + tex2D(_NoiseTex, i.uv.xy + float2(_Time.y * _SpeedX, 0)).rg) - 1; float2 ruv = float2(i.uv.x, 1 - i.uv.y) + waveOffset * _Indentity; //使用扭曲UV对纹理采样 float4 c = tex2D (_MainTex, ruv); //对淡入Alpha和淡出Alpha的插值 fixed fadeA = saturate((_AlphaFadeOut - ruv.y) / (_AlphaFadeOut - _AlphaFadeIn)); c = c * _Color * i.color * fadeA; clip (c.a - 0.01); return c; } ENDCG } }}
阅读全文
0 0
- <Shader> 最终版本的水纹效果
- 水纹效果
- 水纹效果
- 设置简单的类似水纹效果
- 增加listview的item点击水纹效果
- WPF 实现水纹效果
- 水纹波浪效果动画
- Android 5.0 Button 按钮水纹效果的适配问题
- 图像处理之水纹效果
- 点击按钮有水纹效果~~
- iOS 水纹效果代码笔记
- 【shader】灯光遮罩(水纹,散焦等)
- 最终的Linux版本决定
- Android点击水纹效果和QQ拖拽效果的底部导航栏
- 水纹上升的动画
- 最终版本
- Unity3D开发之Unity5版本自写Shader没有雾的效果问题
- cocos2d-x着色器基础之类似水纹效果的实现
- SpringMVC 文档学习笔记
- RxJava 从入门到爱上它
- QML让圆形物体按照圆形轨迹运动和color使用rgba值的Demo
- Linux下启动和停止apache服务
- hadoop涉及到分摊磁盘io负载的配置
- <Shader> 最终版本的水纹效果
- ubuntu12.04 挂载samba网盘命令
- (138)lightmass 全局光照
- nginx memcache Tomcat
- Linux(CentOS7) 系统中指定机器的IP地址(静态IP)
- Oravcle积累
- 22、vue.js 之常用的一些数据处理方法
- Apache Tiles教程
- Chrome接口调试插件、浏览器接口调试插件、浏览器接口调试工具