| Shader "Hidden/Post FX/FXAA" | 
| { | 
|     Properties | 
|     { | 
|         _MainTex ("Texture", 2D) = "white" {} | 
|     } | 
|   | 
|     CGINCLUDE | 
|   | 
|         #include "UnityCG.cginc" | 
|         #include "Common.cginc" | 
|         #include "UberSecondPass.cginc" | 
|         #pragma multi_compile __ GRAIN | 
|         #pragma multi_compile __ DITHERING | 
|   | 
|         #if defined(SHADER_API_PS3) | 
|             #define FXAA_PS3 1 | 
|   | 
|             // Shaves off 2 cycles from the shader | 
|             #define FXAA_EARLY_EXIT 0 | 
|         #elif defined(SHADER_API_XBOX360) | 
|             #define FXAA_360 1 | 
|   | 
|             // Shaves off 10ms from the shader's execution time | 
|             #define FXAA_EARLY_EXIT 1 | 
|         #else | 
|             #define FXAA_PC 1 | 
|         #endif | 
|   | 
|         #define FXAA_HLSL_3 1 | 
|         #define FXAA_QUALITY__PRESET 39 | 
|   | 
|         #define FXAA_GREEN_AS_LUMA 1 | 
|   | 
|         #pragma target 3.0 | 
|         #include "FXAA3.cginc" | 
|   | 
|         float3 _QualitySettings; | 
|         float4 _ConsoleSettings; | 
|   | 
|         half4 Frag(VaryingsDefault i) : SV_Target | 
|         { | 
|             const float4 consoleUV = i.uv.xyxy + 0.5 * float4(-_MainTex_TexelSize.xy, _MainTex_TexelSize.xy); | 
|             const float4 consoleSubpixelFrame = _ConsoleSettings.x * float4(-1.0, -1.0, 1.0, 1.0) * | 
|                 _MainTex_TexelSize.xyxy; | 
|   | 
|             const float4 consoleSubpixelFramePS3 = float4(-2.0, -2.0, 2.0, 2.0) * _MainTex_TexelSize.xyxy; | 
|             const float4 consoleSubpixelFrameXBOX = float4(8.0, 8.0, -4.0, -4.0) * _MainTex_TexelSize.xyxy; | 
|   | 
|         #if defined(SHADER_API_XBOX360) | 
|             const float4 consoleConstants = float4(1.0, -1.0, 0.25, -0.25); | 
|         #else | 
|             const float4 consoleConstants = float4(0.0, 0.0, 0.0, 0.0); | 
|         #endif | 
|   | 
|             half4 color = FxaaPixelShader( | 
|                 UnityStereoScreenSpaceUVAdjust(i.uv, _MainTex_ST), | 
|                 UnityStereoScreenSpaceUVAdjust(consoleUV, _MainTex_ST), | 
|                 _MainTex, _MainTex, _MainTex, _MainTex_TexelSize.xy, | 
|                 consoleSubpixelFrame, consoleSubpixelFramePS3, consoleSubpixelFrameXBOX, | 
|                 _QualitySettings.x, _QualitySettings.y, _QualitySettings.z, | 
|                 _ConsoleSettings.y, _ConsoleSettings.z, _ConsoleSettings.w, consoleConstants); | 
|   | 
|             color.rgb = UberSecondPass(color.rgb, i.uv); | 
|   | 
|             return half4(color.rgb, 1.0); | 
|         } | 
|   | 
|     ENDCG | 
|   | 
|     SubShader | 
|     { | 
|         Cull Off ZWrite Off ZTest Always | 
|   | 
|         Pass | 
|         { | 
|             CGPROGRAM | 
|   | 
|                 #pragma vertex VertDefault | 
|                 #pragma fragment Frag | 
|   | 
|             ENDCG | 
|         } | 
|     } | 
| } |