Files
Main/Assets/GameAssets/RawResources/shader/Ares/PostEffect/DistortVfx.shader

67 lines
1.4 KiB
Plaintext
Raw Normal View History

2025-01-25 04:38:09 +08:00
Shader "Hidden/Ares/PostEffect/DistortVfx"
{
Properties
{
}
CGINCLUDE
#include "UnityCG.cginc"
#include "../Gonbest/Include/Base/CommonCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f
{
float2 uv0 : TEXCOORD0;
float4 vertex : SV_POSITION;
};
uniform sampler2D _MainTex;
uniform sampler2D _DistortTex;
uniform float _Strength;
//基本
v2f vert(appdata v)
{
v2f o = (v2f)0;
o.vertex = v.vertex;
o.uv0 = v.uv;
#if defined(UNITY_UV_STARTS_AT_TOP)
o.uv0 = o.uv0 * float2(1, -1) + float2(0, 1);
#endif
return o;
}
//处理片元
fixed4 frag(v2f i) : SV_Target
{
//根据时间改变采样噪声图获得随机的输出
float4 noise = tex2D(_DistortTex, i.uv0);
//以随机的输出*控制系数得到偏移值
float2 offset = noise.xy * _Strength;
//像素采样时偏移offset用Mask权重进行修改
float2 uv = offset + i.uv0;
float4 col = tex2D(_MainTex, uv);
return col;
}
ENDCG
SubShader
{
Pass
{
ZTest Always
Cull Off
ZWrite Off
Fog { Mode off }
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma fragmentoption ARB_precision_hint_fastest
ENDCG
}
}
Fallback off
}