zoukankan      html  css  js  c++  java
  • [小明学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偏移,便宜信息写在一张噪声图里而已.

  • 相关阅读:
    org.mybatis.spring.mapper.MapperScannerConfigurer$Scanner$1
    LayoutInflater
    发现javax.xml.parsers.SAXParser有bug
    startActivityForResult and onActivityResult
    Sub Thread to update main Thread (UI) 2
    Sub Thread to update main Thread (UI)
    打算听的歌
    会话状态Session
    HttpResponse类
    HttpRequest类
  • 原文地址:https://www.cnblogs.com/WongSiuming/p/5128811.html
Copyright © 2011-2022 走看看