| | |
| | | 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 |
| | | } |
| | | } |
| | | } |
| | | 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
|
| | | }
|
| | | }
|
| | | }
|