Singularity/Library/PackageCache/com.unity.render-pipelines..../Shaders/PostProcessing/EdgeAdaptiveSpatialUpsampli...

61 lines
2.0 KiB
Plaintext
Raw Permalink Normal View History

2024-05-06 14:45:45 -04:00
Shader "Hidden/Universal Render Pipeline/Edge Adaptive Spatial Upsampling"
{
HLSLINCLUDE
#pragma multi_compile_vertex _ _USE_DRAW_PROCEDURAL
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Filtering.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
#include "Packages/com.unity.render-pipelines.universal/Shaders/PostProcessing/Common.hlsl"
TEXTURE2D_X(_SourceTex);
float4 _SourceSize;
#define FSR_INPUT_TEXTURE _SourceTex
#define FSR_INPUT_SAMPLER sampler_LinearClamp
#include "Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/Shaders/FSRCommon.hlsl"
half4 FragEASU(Varyings input) : SV_Target
{
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input);
float2 uv = UnityStereoTransformScreenSpaceTex(input.uv);
uint2 integerUv = uv * _ScreenParams.xy;
half3 color = ApplyEASU(integerUv);
// Convert to linearly encoded color before we pass our output over to RCAS
#if UNITY_COLORSPACE_GAMMA
color = GetSRGBToLinear(color);
#else
color = Gamma20ToLinear(color);
#endif
return half4(color, 1.0);
}
ENDHLSL
/// Shader that performs the EASU (upscaling) component of the two part FidelityFX Super Resolution technique
/// The second part of the technique (RCAS) is handled in the FinalPost shader
/// Note: This shader requires shader target 4.5 because it relies on texture gather instructions
SubShader
{
Tags { "RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline"}
LOD 100
ZTest Always ZWrite Off Cull Off
Pass
{
Name "EASU"
HLSLPROGRAM
#pragma vertex FullscreenVert
#pragma fragment FragEASU
#pragma target 4.5
ENDHLSL
}
}
}