|
|
- Shader "Hidden/Post FX/Motion Blur"
- {
- CGINCLUDE
-
- #pragma target 3.0
-
- ENDCG
-
- SubShader
- {
- Cull Off ZWrite Off ZTest Always
-
- // (0) Velocity texture setup
- Pass
- {
- CGPROGRAM
-
- #include "MotionBlur.cginc"
- #pragma vertex VertDefault
- #pragma fragment FragVelocitySetup
-
- ENDCG
- }
-
- // (1) TileMax filter (2 pixel width with normalization)
- Pass
- {
- CGPROGRAM
-
- #include "MotionBlur.cginc"
- #pragma vertex VertDefault
- #pragma fragment FragTileMax1
-
- ENDCG
- }
-
- // (2) TileMax filter (2 pixel width)
- Pass
- {
- CGPROGRAM
-
- #include "MotionBlur.cginc"
- #pragma vertex VertDefault
- #pragma fragment FragTileMax2
-
- ENDCG
- }
-
- // (3) TileMax filter (variable width)
- Pass
- {
- CGPROGRAM
-
- #include "MotionBlur.cginc"
- #pragma vertex VertDefault
- #pragma fragment FragTileMaxV
-
- ENDCG
- }
-
- // (4) NeighborMax filter
- Pass
- {
- CGPROGRAM
-
- #include "MotionBlur.cginc"
- #pragma vertex VertDefault
- #pragma fragment FragNeighborMax
-
- ENDCG
- }
-
- // (5) Reconstruction filter
- Pass
- {
- CGPROGRAM
-
- #include "MotionBlur.cginc"
- #pragma vertex VertMultitex
- #pragma fragment FragReconstruction
-
- ENDCG
- }
-
- // (6) Frame compression
- Pass
- {
- CGPROGRAM
-
- #pragma multi_compile __ UNITY_COLORSPACE_GAMMA
- #include "MotionBlur.cginc"
- #pragma vertex VertFrameCompress
- #pragma fragment FragFrameCompress
-
- ENDCG
- }
-
- // (7) Frame blending
- Pass
- {
- CGPROGRAM
-
- #pragma multi_compile __ UNITY_COLORSPACE_GAMMA
- #include "MotionBlur.cginc"
- #pragma vertex VertMultitex
- #pragma fragment FragFrameBlending
-
- ENDCG
- }
-
- // (8) Frame blending (without chroma subsampling)
- Pass
- {
- CGPROGRAM
-
- #include "MotionBlur.cginc"
- #pragma vertex VertMultitex
- #pragma fragment FragFrameBlendingRaw
-
- ENDCG
- }
- }
- }
|