効果:
C#の
使用してシステムを。 使用にSystem.Collectionsを。 使用してSystem.Collections.Genericを。 使用してUnityEngineを。 // 编辑模式可见 [ExecuteInEditMode] パブリック クラスTestImageEffect:MonoBehaviour { 公共素材EffectMaterial。 // 最初のフレームを更新する前にスタートが呼び出され 、ボイドスタート() { } // 更新をフレームごとに一度と呼ばれる ボイドアップデート() { } プライベート 無効OnRenderImage(RenderTexture SRC、RenderTexture DEST) { Graphics.Blit(SRC、DEST、EffectMaterial)。 } }
シェーダ
テンプレート画像効果を使用します
シェーダ" カスタム/ TestImageEffectShader " { プロパティ { _MainTex(" テクスチャ"、2D)= " 白" {} _DisplaceTex(" 変位"、2D)= " 白" {} // 噪点图 _Magnitude(" 大きさ"、範囲(0、0.1))= 1 // 偏移强度 _Strength(" 強"、範囲( 0、1))= 1 // 流动速度 } SubShader { // なしカリングまたは深 カルオフZWRITEオフZTEST常に パス { CGPROGRAM の#pragma頂点VERT の#pragmaフラグメントフラグ・ の#include " UnityCG.cginc " 構造体APPDATA { するfloat4頂点:POSITION。 するfloat2 UV:TEXCOORD0。 }。 構造体V2F { するfloat2 UV:TEXCOORD0。 するfloat4頂点:SV_POSITION。 }; V2Fヴェール(のAppData V) { V2F O; o.vertex = UnityObjectToClipPos(v.vertex); o.uv = v.uv; 戻りO; } sampler2D _MainTex; sampler2D _DisplaceTex; フロート_Magnitude; フロート_Strength; fixed4 FRAG( I V2F):SV_Target { // テクスチャサンプリング、XY; i.uv - _Time.xyが流れを感知するように するfloat2 DISP = tex2D(_DisplaceTex、i.uv - _Time.xy * _Strength).xyという形式; // 0-1の範囲でDISPは、この操作は、になるため-1 1パラメータを乗じて許容される DISP =((DISP * 2) - 1)* _Magnitude; // UVシフト座標 tex2D COL =(_MainTex、i.uv +のfloat4 ; DISP) 戻りCOLを; } ENDCG } } }
雑音指数