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