Shader "Hidden/Universal Render Pipeline/PaniniProjection" { Properties { } SubShader { LOD 100 Tags { "RenderPipeline" = "UniversalPipeline" "RenderType" = "Opaque" } Pass { Name "Panini Projection" LOD 100 Tags { "RenderPipeline" = "UniversalPipeline" "RenderType" = "Opaque" } ZTest Always ZWrite Off Cull Off GpuProgramID 5800 HLSLPROGRAM // https://docs.unity3d.com/Manual/SL-PragmaDirectives.html #pragma vertex vert #pragma fragment frag #pragma target 4.0 #pragma multi_compile _ STEREO_INSTANCING_ON #pragma shader_feature _GENERIC #pragma shader_feature _UNIT_DISTANCE #ifdef _GENERIC #ifndef STEREO_INSTANCING_ON #ifndef _UNIT_DISTANCE #define ANY_SHADER_VARIANT_ACTIVE float4 _BlitScaleBias; static float4 vertex_uniform_buffer_0[131]; static float4 gl_Position; static int gl_VertexIndex; static int gl_BaseVertexARB; static float2 vertex_output_1; struct Vertex_Stage_Input { uint gl_VertexIndex : SV_VertexID; uint gl_BaseVertexARB : SV_StartVertexLocation; }; struct Vertex_Stage_Output { float2 vertex_output_1 : TEXCOORD; // TEXCOORD float4 gl_Position : SV_Position; }; void vert_main() { float vertex_unnamed_32 = float(((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) << 1u) & 2u); float vertex_unnamed_33 = float((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) & 2u); gl_Position.x = mad(vertex_unnamed_32, 2.0f, -1.0f); gl_Position.y = mad(vertex_unnamed_33, 2.0f, -1.0f); precise float vertex_unnamed_43 = (-0.0f) - vertex_unnamed_33; precise float vertex_unnamed_45 = vertex_unnamed_43 + 1.0f; vertex_output_1.x = mad(vertex_unnamed_32, vertex_uniform_buffer_0[130u].x, vertex_uniform_buffer_0[130u].z); vertex_output_1.y = mad(vertex_unnamed_45, vertex_uniform_buffer_0[130u].y, vertex_uniform_buffer_0[130u].w); gl_Position.z = 1.0f; gl_Position.w = 1.0f; } Vertex_Stage_Output vert(Vertex_Stage_Input stage_input) { vertex_uniform_buffer_0[130] = float4(_BlitScaleBias[0], _BlitScaleBias[1], _BlitScaleBias[2], _BlitScaleBias[3]); gl_VertexIndex = int(stage_input.gl_VertexIndex + stage_input.gl_BaseVertexARB); gl_BaseVertexARB = stage_input.gl_BaseVertexARB; vert_main(); Vertex_Stage_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.vertex_output_1 = vertex_output_1; return stage_output; } #endif // _GENERIC #endif // !STEREO_INSTANCING_ON #endif // !_UNIT_DISTANCE #ifdef STEREO_INSTANCING_ON #ifdef _GENERIC #ifndef _UNIT_DISTANCE #define ANY_SHADER_VARIANT_ACTIVE float4 _BlitScaleBias; static float4 vertex_uniform_buffer_0[100]; static float4 gl_Position; static uint gl_Layer; static int gl_VertexIndex; static int gl_InstanceIndex; static int gl_BaseVertexARB; static int gl_BaseInstanceARB; static float2 vertex_output_1; struct Vertex_Stage_Input { uint gl_VertexIndex : SV_VertexID; uint gl_InstanceIndex : SV_InstanceID; uint gl_BaseVertexARB : SV_StartVertexLocation; uint gl_BaseInstanceARB : SV_StartInstanceLocation; }; struct Vertex_Stage_Output { float2 vertex_output_1 : TEXCOORD; // TEXCOORD float4 gl_Position : SV_Position; uint gl_Layer : SV_RenderTargetArrayIndex; }; void vert_main() { float vertex_unnamed_35 = float(((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) << 1u) & 2u); float vertex_unnamed_36 = float((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) & 2u); gl_Position.x = mad(vertex_unnamed_35, 2.0f, -1.0f); gl_Position.y = mad(vertex_unnamed_36, 2.0f, -1.0f); precise float vertex_unnamed_46 = (-0.0f) - vertex_unnamed_36; precise float vertex_unnamed_48 = vertex_unnamed_46 + 1.0f; vertex_output_1.x = mad(vertex_unnamed_35, vertex_uniform_buffer_0[99u].x, vertex_uniform_buffer_0[99u].z); vertex_output_1.y = mad(vertex_unnamed_48, vertex_uniform_buffer_0[99u].y, vertex_uniform_buffer_0[99u].w); gl_Position.z = 1.0f; gl_Position.w = 1.0f; gl_Layer = int((uint(gl_InstanceIndex) - uint(gl_BaseInstanceARB)) & 1u); } Vertex_Stage_Output vert(Vertex_Stage_Input stage_input) { vertex_uniform_buffer_0[99] = float4(_BlitScaleBias[0], _BlitScaleBias[1], _BlitScaleBias[2], _BlitScaleBias[3]); gl_VertexIndex = int(stage_input.gl_VertexIndex + stage_input.gl_BaseVertexARB); gl_InstanceIndex = int(stage_input.gl_InstanceIndex + stage_input.gl_BaseInstanceARB); gl_BaseVertexARB = stage_input.gl_BaseVertexARB; gl_BaseInstanceARB = stage_input.gl_BaseInstanceARB; vert_main(); Vertex_Stage_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.gl_Layer = gl_Layer; stage_output.vertex_output_1 = vertex_output_1; return stage_output; } #endif // STEREO_INSTANCING_ON #endif // _GENERIC #endif // !_UNIT_DISTANCE #ifdef _UNIT_DISTANCE #ifndef STEREO_INSTANCING_ON #ifndef _GENERIC #define ANY_SHADER_VARIANT_ACTIVE float4 _BlitScaleBias; static float4 vertex_uniform_buffer_0[131]; static float4 gl_Position; static int gl_VertexIndex; static int gl_BaseVertexARB; static float2 vertex_output_1; struct Vertex_Stage_Input { uint gl_VertexIndex : SV_VertexID; uint gl_BaseVertexARB : SV_StartVertexLocation; }; struct Vertex_Stage_Output { float2 vertex_output_1 : TEXCOORD; // TEXCOORD float4 gl_Position : SV_Position; }; void vert_main() { float vertex_unnamed_32 = float(((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) << 1u) & 2u); float vertex_unnamed_33 = float((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) & 2u); gl_Position.x = mad(vertex_unnamed_32, 2.0f, -1.0f); gl_Position.y = mad(vertex_unnamed_33, 2.0f, -1.0f); precise float vertex_unnamed_43 = (-0.0f) - vertex_unnamed_33; precise float vertex_unnamed_45 = vertex_unnamed_43 + 1.0f; vertex_output_1.x = mad(vertex_unnamed_32, vertex_uniform_buffer_0[130u].x, vertex_uniform_buffer_0[130u].z); vertex_output_1.y = mad(vertex_unnamed_45, vertex_uniform_buffer_0[130u].y, vertex_uniform_buffer_0[130u].w); gl_Position.z = 1.0f; gl_Position.w = 1.0f; } Vertex_Stage_Output vert(Vertex_Stage_Input stage_input) { vertex_uniform_buffer_0[130] = float4(_BlitScaleBias[0], _BlitScaleBias[1], _BlitScaleBias[2], _BlitScaleBias[3]); gl_VertexIndex = int(stage_input.gl_VertexIndex + stage_input.gl_BaseVertexARB); gl_BaseVertexARB = stage_input.gl_BaseVertexARB; vert_main(); Vertex_Stage_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.vertex_output_1 = vertex_output_1; return stage_output; } #endif // _UNIT_DISTANCE #endif // !STEREO_INSTANCING_ON #endif // !_GENERIC #ifdef STEREO_INSTANCING_ON #ifdef _UNIT_DISTANCE #ifndef _GENERIC #define ANY_SHADER_VARIANT_ACTIVE float4 _BlitScaleBias; static float4 vertex_uniform_buffer_0[100]; static float4 gl_Position; static uint gl_Layer; static int gl_VertexIndex; static int gl_InstanceIndex; static int gl_BaseVertexARB; static int gl_BaseInstanceARB; static float2 vertex_output_1; struct Vertex_Stage_Input { uint gl_VertexIndex : SV_VertexID; uint gl_InstanceIndex : SV_InstanceID; uint gl_BaseVertexARB : SV_StartVertexLocation; uint gl_BaseInstanceARB : SV_StartInstanceLocation; }; struct Vertex_Stage_Output { float2 vertex_output_1 : TEXCOORD; // TEXCOORD float4 gl_Position : SV_Position; uint gl_Layer : SV_RenderTargetArrayIndex; }; void vert_main() { float vertex_unnamed_35 = float(((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) << 1u) & 2u); float vertex_unnamed_36 = float((uint(gl_VertexIndex) - uint(gl_BaseVertexARB)) & 2u); gl_Position.x = mad(vertex_unnamed_35, 2.0f, -1.0f); gl_Position.y = mad(vertex_unnamed_36, 2.0f, -1.0f); precise float vertex_unnamed_46 = (-0.0f) - vertex_unnamed_36; precise float vertex_unnamed_48 = vertex_unnamed_46 + 1.0f; vertex_output_1.x = mad(vertex_unnamed_35, vertex_uniform_buffer_0[99u].x, vertex_uniform_buffer_0[99u].z); vertex_output_1.y = mad(vertex_unnamed_48, vertex_uniform_buffer_0[99u].y, vertex_uniform_buffer_0[99u].w); gl_Position.z = 1.0f; gl_Position.w = 1.0f; gl_Layer = int((uint(gl_InstanceIndex) - uint(gl_BaseInstanceARB)) & 1u); } Vertex_Stage_Output vert(Vertex_Stage_Input stage_input) { vertex_uniform_buffer_0[99] = float4(_BlitScaleBias[0], _BlitScaleBias[1], _BlitScaleBias[2], _BlitScaleBias[3]); gl_VertexIndex = int(stage_input.gl_VertexIndex + stage_input.gl_BaseVertexARB); gl_InstanceIndex = int(stage_input.gl_InstanceIndex + stage_input.gl_BaseInstanceARB); gl_BaseVertexARB = stage_input.gl_BaseVertexARB; gl_BaseInstanceARB = stage_input.gl_BaseInstanceARB; vert_main(); Vertex_Stage_Output stage_output; stage_output.gl_Position = gl_Position; stage_output.gl_Layer = gl_Layer; stage_output.vertex_output_1 = vertex_output_1; return stage_output; } #endif // STEREO_INSTANCING_ON #endif // _UNIT_DISTANCE #endif // !_GENERIC #ifdef _GENERIC #ifndef STEREO_INSTANCING_ON #ifndef _UNIT_DISTANCE #define ANY_SHADER_VARIANT_ACTIVE float4 _RTHandleScale; float4 _ScreenSize; float4 _Params; static float4 fragment_uniform_buffer_0[137]; Texture2D _BlitTexture; SamplerState S0; static float2 fragment_input_1; static float4 fragment_output_0; struct Fragment_Stage_Input { float2 fragment_input_1 : TEXCOORD; // TEXCOORD }; struct Fragment_Stage_Output { float4 fragment_output_0 : SV_Target0; }; void frag_main() { precise float fragment_unnamed_46 = mad(fragment_input_1.x, 2.0f, -1.0f) * fragment_uniform_buffer_0[136u].x; precise float fragment_unnamed_47 = mad(fragment_input_1.y, 2.0f, -1.0f) * fragment_uniform_buffer_0[136u].y; precise float fragment_unnamed_51 = fragment_unnamed_46 * fragment_uniform_buffer_0[136u].w; precise float fragment_unnamed_52 = fragment_unnamed_47 * fragment_uniform_buffer_0[136u].w; precise float fragment_unnamed_56 = fragment_uniform_buffer_0[136u].z + 1.0f; precise float fragment_unnamed_58 = fragment_unnamed_56 * fragment_unnamed_56; float fragment_unnamed_59 = mad(fragment_unnamed_51, fragment_unnamed_51, fragment_unnamed_58); precise float fragment_unnamed_63 = fragment_unnamed_51 * fragment_uniform_buffer_0[136u].z; precise float fragment_unnamed_64 = (-0.0f) - fragment_unnamed_63; precise float fragment_unnamed_68 = fragment_unnamed_56 * sqrt(mad(fragment_unnamed_64, fragment_unnamed_63, fragment_unnamed_59)); precise float fragment_unnamed_69 = (-0.0f) - fragment_unnamed_63; precise float fragment_unnamed_71 = mad(fragment_unnamed_69, fragment_unnamed_51, fragment_unnamed_68) / fragment_unnamed_59; precise float fragment_unnamed_75 = fragment_unnamed_71 + fragment_uniform_buffer_0[136u].z; precise float fragment_unnamed_76 = fragment_unnamed_75 / fragment_unnamed_56; precise float fragment_unnamed_77 = fragment_unnamed_76 * fragment_unnamed_51; precise float fragment_unnamed_78 = fragment_unnamed_76 * fragment_unnamed_52; precise float fragment_unnamed_79 = fragment_unnamed_77 / fragment_unnamed_71; precise float fragment_unnamed_80 = fragment_unnamed_78 / fragment_unnamed_71; precise float fragment_unnamed_85 = fragment_unnamed_79 / fragment_uniform_buffer_0[136u].x; precise float fragment_unnamed_86 = fragment_unnamed_80 / fragment_uniform_buffer_0[136u].y; precise float fragment_unnamed_94 = (-0.0f) - fragment_uniform_buffer_0[123u].z; precise float fragment_unnamed_96 = (-0.0f) - fragment_uniform_buffer_0[123u].w; precise float fragment_unnamed_106 = min(mad(fragment_unnamed_94, 0.5f, 1.0f), mad(fragment_unnamed_85, 0.5f, 0.5f)) * fragment_uniform_buffer_0[28u].x; precise float fragment_unnamed_107 = min(mad(fragment_unnamed_96, 0.5f, 1.0f), mad(fragment_unnamed_86, 0.5f, 0.5f)) * fragment_uniform_buffer_0[28u].y; float4 fragment_unnamed_114 = _BlitTexture.SampleBias(S0, float2(fragment_unnamed_106, fragment_unnamed_107), fragment_uniform_buffer_0[4u].x); fragment_output_0.x = fragment_unnamed_114.x; fragment_output_0.y = fragment_unnamed_114.y; fragment_output_0.z = fragment_unnamed_114.z; fragment_output_0.w = fragment_unnamed_114.w; } Fragment_Stage_Output frag(Fragment_Stage_Input stage_input) { fragment_uniform_buffer_0[28] = float4(_RTHandleScale[0], _RTHandleScale[1], _RTHandleScale[2], _RTHandleScale[3]); fragment_uniform_buffer_0[123] = float4(_ScreenSize[0], _ScreenSize[1], _ScreenSize[2], _ScreenSize[3]); fragment_uniform_buffer_0[136] = float4(_Params[0], _Params[1], _Params[2], _Params[3]); fragment_input_1 = stage_input.fragment_input_1; frag_main(); Fragment_Stage_Output stage_output; stage_output.fragment_output_0 = fragment_output_0; return stage_output; } #endif // _GENERIC #endif // !STEREO_INSTANCING_ON #endif // !_UNIT_DISTANCE #ifdef STEREO_INSTANCING_ON #ifdef _GENERIC #ifndef _UNIT_DISTANCE #define ANY_SHADER_VARIANT_ACTIVE float4 _RTHandleScale; float4 _ScreenSize; float4 _Params; static float4 fragment_uniform_buffer_0[106]; Texture2DArray _BlitTexture; SamplerState S0; static uint gl_Layer; static float2 fragment_input_1; static float4 fragment_output_0; struct Fragment_Stage_Input { float2 fragment_input_1 : TEXCOORD; // TEXCOORD uint gl_Layer : SV_RenderTargetArrayIndex; }; struct Fragment_Stage_Output { float4 fragment_output_0 : SV_Target0; }; void frag_main() { precise float fragment_unnamed_48 = mad(fragment_input_1.x, 2.0f, -1.0f) * fragment_uniform_buffer_0[105u].x; precise float fragment_unnamed_49 = mad(fragment_input_1.y, 2.0f, -1.0f) * fragment_uniform_buffer_0[105u].y; precise float fragment_unnamed_53 = fragment_unnamed_48 * fragment_uniform_buffer_0[105u].w; precise float fragment_unnamed_54 = fragment_unnamed_49 * fragment_uniform_buffer_0[105u].w; precise float fragment_unnamed_58 = fragment_uniform_buffer_0[105u].z + 1.0f; precise float fragment_unnamed_60 = fragment_unnamed_58 * fragment_unnamed_58; float fragment_unnamed_61 = mad(fragment_unnamed_53, fragment_unnamed_53, fragment_unnamed_60); precise float fragment_unnamed_65 = fragment_unnamed_53 * fragment_uniform_buffer_0[105u].z; precise float fragment_unnamed_66 = (-0.0f) - fragment_unnamed_65; precise float fragment_unnamed_70 = fragment_unnamed_58 * sqrt(mad(fragment_unnamed_66, fragment_unnamed_65, fragment_unnamed_61)); precise float fragment_unnamed_71 = (-0.0f) - fragment_unnamed_65; precise float fragment_unnamed_73 = mad(fragment_unnamed_71, fragment_unnamed_53, fragment_unnamed_70) / fragment_unnamed_61; precise float fragment_unnamed_77 = fragment_unnamed_73 + fragment_uniform_buffer_0[105u].z; precise float fragment_unnamed_78 = fragment_unnamed_77 / fragment_unnamed_58; precise float fragment_unnamed_79 = fragment_unnamed_78 * fragment_unnamed_53; precise float fragment_unnamed_80 = fragment_unnamed_78 * fragment_unnamed_54; precise float fragment_unnamed_81 = fragment_unnamed_79 / fragment_unnamed_73; precise float fragment_unnamed_82 = fragment_unnamed_80 / fragment_unnamed_73; precise float fragment_unnamed_87 = fragment_unnamed_81 / fragment_uniform_buffer_0[105u].x; precise float fragment_unnamed_88 = fragment_unnamed_82 / fragment_uniform_buffer_0[105u].y; precise float fragment_unnamed_96 = (-0.0f) - fragment_uniform_buffer_0[92u].z; precise float fragment_unnamed_98 = (-0.0f) - fragment_uniform_buffer_0[92u].w; precise float fragment_unnamed_108 = min(mad(fragment_unnamed_96, 0.5f, 1.0f), mad(fragment_unnamed_87, 0.5f, 0.5f)) * fragment_uniform_buffer_0[27u].x; precise float fragment_unnamed_109 = min(mad(fragment_unnamed_98, 0.5f, 1.0f), mad(fragment_unnamed_88, 0.5f, 0.5f)) * fragment_uniform_buffer_0[27u].y; float4 fragment_unnamed_118 = _BlitTexture.SampleBias(S0, float3(fragment_unnamed_108, fragment_unnamed_109, float(uint(gl_Layer))), fragment_uniform_buffer_0[4u].x); fragment_output_0.x = fragment_unnamed_118.x; fragment_output_0.y = fragment_unnamed_118.y; fragment_output_0.z = fragment_unnamed_118.z; fragment_output_0.w = fragment_unnamed_118.w; } Fragment_Stage_Output frag(Fragment_Stage_Input stage_input) { fragment_uniform_buffer_0[27] = float4(_RTHandleScale[0], _RTHandleScale[1], _RTHandleScale[2], _RTHandleScale[3]); fragment_uniform_buffer_0[92] = float4(_ScreenSize[0], _ScreenSize[1], _ScreenSize[2], _ScreenSize[3]); fragment_uniform_buffer_0[105] = float4(_Params[0], _Params[1], _Params[2], _Params[3]); gl_Layer = stage_input.gl_Layer; fragment_input_1 = stage_input.fragment_input_1; frag_main(); Fragment_Stage_Output stage_output; stage_output.fragment_output_0 = fragment_output_0; return stage_output; } #endif // STEREO_INSTANCING_ON #endif // _GENERIC #endif // !_UNIT_DISTANCE #ifdef _UNIT_DISTANCE #ifndef STEREO_INSTANCING_ON #ifndef _GENERIC #define ANY_SHADER_VARIANT_ACTIVE float4 _RTHandleScale; float4 _ScreenSize; float4 _Params; static float4 fragment_uniform_buffer_0[137]; Texture2D _BlitTexture; SamplerState S0; static float2 fragment_input_1; static float4 fragment_output_0; struct Fragment_Stage_Input { float2 fragment_input_1 : TEXCOORD; // TEXCOORD }; struct Fragment_Stage_Output { float4 fragment_output_0 : SV_Target0; }; void frag_main() { precise float fragment_unnamed_46 = mad(fragment_input_1.x, 2.0f, -1.0f) * fragment_uniform_buffer_0[136u].x; precise float fragment_unnamed_47 = mad(fragment_input_1.y, 2.0f, -1.0f) * fragment_uniform_buffer_0[136u].y; precise float fragment_unnamed_51 = fragment_unnamed_46 * fragment_uniform_buffer_0[136u].w; precise float fragment_unnamed_52 = fragment_unnamed_47 * fragment_uniform_buffer_0[136u].w; precise float fragment_unnamed_53 = fragment_unnamed_51 * fragment_unnamed_51; float fragment_unnamed_56 = sqrt(mad(fragment_unnamed_51, fragment_unnamed_51, 4.0f)); precise float fragment_unnamed_57 = fragment_unnamed_53 / fragment_unnamed_56; precise float fragment_unnamed_58 = (-0.0f) - fragment_unnamed_57; precise float fragment_unnamed_60 = fragment_unnamed_58 + fragment_unnamed_56; precise float fragment_unnamed_61 = fragment_unnamed_60 / fragment_unnamed_56; precise float fragment_unnamed_62 = fragment_unnamed_61 * fragment_unnamed_51; precise float fragment_unnamed_63 = fragment_unnamed_61 * fragment_unnamed_52; float fragment_unnamed_64 = mad(fragment_unnamed_61, 2.0f, -1.0f); precise float fragment_unnamed_65 = fragment_unnamed_62 / fragment_unnamed_64; precise float fragment_unnamed_66 = fragment_unnamed_63 / fragment_unnamed_64; precise float fragment_unnamed_71 = fragment_unnamed_65 / fragment_uniform_buffer_0[136u].x; precise float fragment_unnamed_72 = fragment_unnamed_66 / fragment_uniform_buffer_0[136u].y; precise float fragment_unnamed_80 = (-0.0f) - fragment_uniform_buffer_0[123u].z; precise float fragment_unnamed_82 = (-0.0f) - fragment_uniform_buffer_0[123u].w; precise float fragment_unnamed_93 = min(mad(fragment_unnamed_80, 0.5f, 1.0f), mad(fragment_unnamed_71, 0.5f, 0.5f)) * fragment_uniform_buffer_0[28u].x; precise float fragment_unnamed_94 = min(mad(fragment_unnamed_82, 0.5f, 1.0f), mad(fragment_unnamed_72, 0.5f, 0.5f)) * fragment_uniform_buffer_0[28u].y; float4 fragment_unnamed_101 = _BlitTexture.SampleBias(S0, float2(fragment_unnamed_93, fragment_unnamed_94), fragment_uniform_buffer_0[4u].x); fragment_output_0.x = fragment_unnamed_101.x; fragment_output_0.y = fragment_unnamed_101.y; fragment_output_0.z = fragment_unnamed_101.z; fragment_output_0.w = fragment_unnamed_101.w; } Fragment_Stage_Output frag(Fragment_Stage_Input stage_input) { fragment_uniform_buffer_0[28] = float4(_RTHandleScale[0], _RTHandleScale[1], _RTHandleScale[2], _RTHandleScale[3]); fragment_uniform_buffer_0[123] = float4(_ScreenSize[0], _ScreenSize[1], _ScreenSize[2], _ScreenSize[3]); fragment_uniform_buffer_0[136] = float4(_Params[0], _Params[1], _Params[2], _Params[3]); fragment_input_1 = stage_input.fragment_input_1; frag_main(); Fragment_Stage_Output stage_output; stage_output.fragment_output_0 = fragment_output_0; return stage_output; } #endif // _UNIT_DISTANCE #endif // !STEREO_INSTANCING_ON #endif // !_GENERIC #ifdef STEREO_INSTANCING_ON #ifdef _UNIT_DISTANCE #ifndef _GENERIC #define ANY_SHADER_VARIANT_ACTIVE float4 _RTHandleScale; float4 _ScreenSize; float4 _Params; static float4 fragment_uniform_buffer_0[106]; Texture2DArray _BlitTexture; SamplerState S0; static uint gl_Layer; static float2 fragment_input_1; static float4 fragment_output_0; struct Fragment_Stage_Input { float2 fragment_input_1 : TEXCOORD; // TEXCOORD uint gl_Layer : SV_RenderTargetArrayIndex; }; struct Fragment_Stage_Output { float4 fragment_output_0 : SV_Target0; }; void frag_main() { precise float fragment_unnamed_48 = mad(fragment_input_1.x, 2.0f, -1.0f) * fragment_uniform_buffer_0[105u].x; precise float fragment_unnamed_49 = mad(fragment_input_1.y, 2.0f, -1.0f) * fragment_uniform_buffer_0[105u].y; precise float fragment_unnamed_53 = fragment_unnamed_48 * fragment_uniform_buffer_0[105u].w; precise float fragment_unnamed_54 = fragment_unnamed_49 * fragment_uniform_buffer_0[105u].w; precise float fragment_unnamed_55 = fragment_unnamed_53 * fragment_unnamed_53; float fragment_unnamed_58 = sqrt(mad(fragment_unnamed_53, fragment_unnamed_53, 4.0f)); precise float fragment_unnamed_59 = fragment_unnamed_55 / fragment_unnamed_58; precise float fragment_unnamed_60 = (-0.0f) - fragment_unnamed_59; precise float fragment_unnamed_62 = fragment_unnamed_60 + fragment_unnamed_58; precise float fragment_unnamed_63 = fragment_unnamed_62 / fragment_unnamed_58; precise float fragment_unnamed_64 = fragment_unnamed_63 * fragment_unnamed_53; precise float fragment_unnamed_65 = fragment_unnamed_63 * fragment_unnamed_54; float fragment_unnamed_66 = mad(fragment_unnamed_63, 2.0f, -1.0f); precise float fragment_unnamed_67 = fragment_unnamed_64 / fragment_unnamed_66; precise float fragment_unnamed_68 = fragment_unnamed_65 / fragment_unnamed_66; precise float fragment_unnamed_73 = fragment_unnamed_67 / fragment_uniform_buffer_0[105u].x; precise float fragment_unnamed_74 = fragment_unnamed_68 / fragment_uniform_buffer_0[105u].y; precise float fragment_unnamed_82 = (-0.0f) - fragment_uniform_buffer_0[92u].z; precise float fragment_unnamed_84 = (-0.0f) - fragment_uniform_buffer_0[92u].w; precise float fragment_unnamed_95 = min(mad(fragment_unnamed_82, 0.5f, 1.0f), mad(fragment_unnamed_73, 0.5f, 0.5f)) * fragment_uniform_buffer_0[27u].x; precise float fragment_unnamed_96 = min(mad(fragment_unnamed_84, 0.5f, 1.0f), mad(fragment_unnamed_74, 0.5f, 0.5f)) * fragment_uniform_buffer_0[27u].y; float4 fragment_unnamed_105 = _BlitTexture.SampleBias(S0, float3(fragment_unnamed_95, fragment_unnamed_96, float(uint(gl_Layer))), fragment_uniform_buffer_0[4u].x); fragment_output_0.x = fragment_unnamed_105.x; fragment_output_0.y = fragment_unnamed_105.y; fragment_output_0.z = fragment_unnamed_105.z; fragment_output_0.w = fragment_unnamed_105.w; } Fragment_Stage_Output frag(Fragment_Stage_Input stage_input) { fragment_uniform_buffer_0[27] = float4(_RTHandleScale[0], _RTHandleScale[1], _RTHandleScale[2], _RTHandleScale[3]); fragment_uniform_buffer_0[92] = float4(_ScreenSize[0], _ScreenSize[1], _ScreenSize[2], _ScreenSize[3]); fragment_uniform_buffer_0[105] = float4(_Params[0], _Params[1], _Params[2], _Params[3]); gl_Layer = stage_input.gl_Layer; fragment_input_1 = stage_input.fragment_input_1; frag_main(); Fragment_Stage_Output stage_output; stage_output.fragment_output_0 = fragment_output_0; return stage_output; } #endif // STEREO_INSTANCING_ON #endif // _UNIT_DISTANCE #endif // !_GENERIC // Fallback Shader Code #ifndef ANY_SHADER_VARIANT_ACTIVE // https://docs.unity3d.com/Manual/SL-UnityShaderVariables.html float4x4 unity_MatrixMVP; struct Vertex_Stage_Input { float3 pos : POSITION; }; struct Vertex_Stage_Output { float4 pos : SV_POSITION; }; Vertex_Stage_Output vert(Vertex_Stage_Input input) { Vertex_Stage_Output output; output.pos = mul(unity_MatrixMVP, float4(input.pos, 1.0)); return output; } float4 frag(Vertex_Stage_Output input) : SV_TARGET { // Output solid grey color (e.g., 50% grey) return float4(0.5, 0.5, 0.5, 1.0); // RGBA } #endif // !ANY_SHADER_VARIANT_ACTIVE ENDHLSL } } }