summaryrefslogtreecommitdiff
path: root/Erika/Assets/Resources/Shaders/Common/Image/ImageEffect.cginc
diff options
context:
space:
mode:
Diffstat (limited to 'Erika/Assets/Resources/Shaders/Common/Image/ImageEffect.cginc')
-rw-r--r--Erika/Assets/Resources/Shaders/Common/Image/ImageEffect.cginc45
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;
+}