UnityGame/Library/PackageCache/com.unity.render-pipelines.universal/Shaders/PostProcessing/TemporalAA.shader
2024-10-27 10:53:47 +03:00

121 lines
3.3 KiB
Plaintext

Shader "Hidden/Universal Render Pipeline/TemporalAA"
{
HLSLINCLUDE
#pragma exclude_renderers gles
#pragma multi_compile_fragment _ _ENABLE_ALPHA_OUTPUT
#pragma vertex Vert
#pragma fragment TaaFrag
ENDHLSL
SubShader
{
Tags { "RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline"}
LOD 100
ZTest Always ZWrite Off Blend Off Cull Off
Pass
{
Name "TemporalAA - Accumulate - Quality Very Low"
HLSLPROGRAM
// User RGB color space for better perf. on low-end devices.
#define TAA_YCOCG 0
#include "Packages/com.unity.render-pipelines.universal/Shaders/PostProcessing/TemporalAA.hlsl"
half4 TaaFrag(Varyings input) : SV_Target
{
return DoTemporalAA(input, 0, 0, 0, 0);
}
ENDHLSL
}
Pass
{
Name "TemporalAA - Accumulate - Quality Low"
HLSLPROGRAM
// User RGB color space for better perf.
#define TAA_YCOCG 0
#include "Packages/com.unity.render-pipelines.universal/Shaders/PostProcessing/TemporalAA.hlsl"
half4 TaaFrag(Varyings input) : SV_Target
{
return DoTemporalAA(input, 0, 1, 1, 0);
}
ENDHLSL
}
Pass
{
Name "TemporalAA - Accumulate - Quality Medium"
HLSLPROGRAM
#include "Packages/com.unity.render-pipelines.universal/Shaders/PostProcessing/TemporalAA.hlsl"
half4 TaaFrag(Varyings input) : SV_Target
{
return DoTemporalAA(input, 2, 2, 1, 0);
}
ENDHLSL
}
Pass
{
Name "TemporalAA - Accumulate - Quality High"
HLSLPROGRAM
#include "Packages/com.unity.render-pipelines.universal/Shaders/PostProcessing/TemporalAA.hlsl"
half4 TaaFrag(Varyings input) : SV_Target
{
return DoTemporalAA(input, 2, 2, 2, 0);
}
ENDHLSL
}
Pass
{
Name "TemporalAA - Accumulate - Quality Very High"
HLSLPROGRAM
#pragma multi_compile_fragment _ TAA_LOW_PRECISION_SOURCE
#include "Packages/com.unity.render-pipelines.universal/Shaders/PostProcessing/TemporalAA.hlsl"
half4 TaaFrag(Varyings input) : SV_Target
{
#ifdef TAA_LOW_PRECISION_SOURCE
// Use clamp instead of clip with low precision color sources to avoid flicker.
return DoTemporalAA(input, 2, 2, 2, 1);
#else
return DoTemporalAA(input, 3, 2, 2, 1);
#endif
}
ENDHLSL
}
Pass
{
Name "TemporalAA - Copy History"
HLSLPROGRAM
#include "Packages/com.unity.render-pipelines.universal/Shaders/PostProcessing/TemporalAA.hlsl"
half4 TaaFrag(Varyings input) : SV_Target
{
return DoCopy(input);
}
ENDHLSL
}
}
}