diff options
Diffstat (limited to 'Erika/Assets/Resources/Shaders/Common/Image/ImageEffect.cginc')
-rw-r--r-- | Erika/Assets/Resources/Shaders/Common/Image/ImageEffect.cginc | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/Erika/Assets/Resources/Shaders/Common/Image/ImageEffect.cginc b/Erika/Assets/Resources/Shaders/Common/Image/ImageEffect.cginc new file mode 100644 index 00000000..ede53e55 --- /dev/null +++ b/Erika/Assets/Resources/Shaders/Common/Image/ImageEffect.cginc @@ -0,0 +1,45 @@ +// UnitLensEffect效果相关 + +sampler2D _MainTex; +float4 _MainTex_ST; + +sampler2D _CameraDepthTexture; +float4 _CameraDepthTexture_ST; + +sampler2D _UnitDepthTexture; // 配合_CameraDepthTexture定位角色 +float4 _UnitDepthTexture_ST; + +sampler2D _UnitWorldNormalTexture; +float4 _UnitWorldNormalTexture_ST; + +sampler2D _UnitMotionVectorTexture; +float4 _UnitMotionVectorTexture_ST; + +float4 _UnitTileOffset; + +// 只对一小部分进行后处理 +float4 CalculateUnitTillOfssetVertex(float4 vert) +{ + float4 v = float4(vert.xy * _UnitTileOffset.xy + _UnitTileOffset.zw, 0, 1); + v.xy = v.xy * 2 - float2(1,1); + return v; +} + +fixed2 CalculateUnitTillOfssetUV(fixed2 uv0) +{ + return uv0 * _UnitTileOffset.xy + _UnitTileOffset.zw; +} + +struct image_v2f +{ + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; +}; + +image_v2f image_vert(appdata_img v) +{ + image_v2f o; + o.vertex = CalculateUnitTillOfssetVertex(v.vertex); + o.uv = CalculateUnitTillOfssetUV(TRANSFORM_TEX(v.texcoord, _MainTex)); + return o; +} |