diff options
Diffstat (limited to 'Studio/Content/Effect Library/FXAA.effect')
-rw-r--r-- | Studio/Content/Effect Library/FXAA.effect | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/Studio/Content/Effect Library/FXAA.effect b/Studio/Content/Effect Library/FXAA.effect new file mode 100644 index 0000000..0434a38 --- /dev/null +++ b/Studio/Content/Effect Library/FXAA.effect @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<Effect> + <MetaData> + <Property name="Sprite" filter="nearest" clamp="clamp" type="Texture" /> + </MetaData> + <Shaders> + <Shader name="RGBL"> + <FragmentShader> +void frag() // Create RGBL buffer +{ + vec4 color = texture2D_0(TexCoord); + color.a = dot(color.rgb, vec3(0.299, 0.587, 0.114)); + gl_FragColor = color; +} + </FragmentShader> + </Shader> + <Shader name="BLUR"> + <FragmentShader> +#define FXAA_VERION 311 +#define FXAA_PC 1 +#define FXAA_GLSL_130 1 +#define FXAA_LINEAR 1 +#if FXAA_VERION >= 311 +#include "Fxaa3_11.glsllib" +#else +#include "Fxaa3_8.glsllib" +#endif + +void frag() // Mix the input blur and the depth texture with the sprite +{ + float sprightA = texture2D_Sprite( TexCoord ).a; +#if FXAA_VERION >= 311 + vec4 aaPix = FxaaPixelShader( TexCoord, vec4(0.0,0.0,0.0,0.0), Texture0, Texture0, Texture0, vec2(1.0 / DestSize.x, 1.0 / DestSize.y), + vec4(0,0,0,0), vec4(0,0,0,0), vec4(0,0,0,0), 0.75, 0.166, 0.0833, 8.0, 0.125, 0.05, vec4(0,0,0,0) ); +#else + vec4 aaPix = FxaaPixelShader( TexCoord, vec4(0.0,0.0,0.0,0.0), Texture0, vec2(1.0 / DestSize.x, 1.0 / DestSize.y), vec4(0,0,0,0) ); +#endif + gl_FragColor = vec4(aaPix.rgb, sprightA ); +} + </FragmentShader> + </Shader> + </Shaders> + <Passes> + <Buffer name="rgbl_buffer" type="ubyte" format="rgba" filter="linear" wrap="clamp" lifetime="frame"/> + <Pass shader="RGBL" input="[source]" output="rgbl_buffer"/> + <Pass shader="BLUR" input="rgbl_buffer"> + <BufferInput param="Sprite" value="[source]"/> + </Pass> + </Passes> +</Effect> + |