• [小明学Shader]14.热扭曲效果


    1.代码

    Shader "AAAA/HeatIsland" {
    Properties {
        _MainTex ("Base (RGB)", 2D) = "white" {}
        _OffsetTex ("Shui (RGB)", 2D) = "white" {}
        _ClipTex ("Clip (RGB)", 2D) = "white" {}
        _Speed("速度",range(2,12))=12
        _Range("range",range(0,20))=10
    }
    
    SubShader {
        Pass {
            ZTest Always Cull Off ZWrite Off
            Fog { Mode off }
                    
    CGPROGRAM
    #pragma vertex vert
    #pragma fragment frag
    #pragma fragmentoption ARB_precision_hint_fastest 
    #include "UnityCG.cginc"
    
    uniform sampler2D _MainTex;
    uniform sampler2D _OffsetTex;
    uniform float _Speed;
    uniform float _Range;
    
    struct v2f {
        float4 pos : POSITION;
        float2 uv : TEXCOORD0;
    };
    
    v2f vert( appdata_img v )
    {
        v2f o;
        o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
        o.uv = v.texcoord;
        return o;
    }
    
    float4 frag (v2f i) : COLOR{
        float2 offset = i.uv;
        
        //噪声图的uv随着时间增长一直向下移动
        float2 offsetUV=float2(i.uv.x,i.uv.y-_Time.x*_Speed);
        //计算下移后的uv所对应的color
        float4 shuiColor = tex2D(_OffsetTex, offsetUV);
        //将MainTex的uv进行偏移
        offsetUV = offset + shuiColor.xy/_Range;
        
        return tex2D(_MainTex, offsetUV);
    }
    ENDCG
    
        }
    }
    
    Fallback off
    
    }

    2.效果

    3.注意 

      扭曲的本质是UV偏移,便宜信息写在一张噪声图里而已.

  • 相关阅读:
    Mybatis中的like模糊查询
    Cookie
    架构师的自我修养
    微服务要面临的问题
    为啥要去IOE——分布式架构的由来
    分层架构设计
    如何选开源协议
    中国互联网20年简史
    2018第27周总结
    保住本金,安全第一
  • 原文地址:https://www.cnblogs.com/WongSiuming/p/5128811.html
Copyright © 2020-2023  润新知