FiE-Game/Assets/PostProcessing/Resources/Shaders/MotionBlur.shader
2023-07-25 00:52:50 +05:00

123 lines
2.5 KiB
Text

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