#version 140 #pragma optionNV(fastmath on) #pragma optionNV(ifcvt none) #pragma optionNV(inline all) #pragma optionNV(strict on) #pragma optionNV(unroll all) in vec2 frag_TEXCOORD0; in vec2 frag_TEXCOORD1; in vec2 frag_TEXCOORD2; in vec2 frag_TEXCOORD3; out vec4 rast_SV_Target; // // Structure definitions // struct VS_OUTPUT { vec4 position; vec2 uvr; vec2 uvg; vec2 uvb; vec2 uvn; }; // // Global variable definitions // layout (std140) uniform cBuffer { mat4 reproj; mat4 proj; mat4 invProj; vec4 colorMask; float vignette; float blackLevel; float gamma; }; //uniform float blackLevel; //uniform vec4 colorMask; //uniform float gamma; //uniform float vignette; uniform sampler2D g_txScene; // // Function declarations // vec4 FadeEdges( in vec4 color, in vec2 uv ); vec4 scene( in vec2 uv ); vec4 PS( in VS_OUTPUT xlat_var_input ); // // Function definitions // vec4 FadeEdges( in vec4 color, in vec2 uv ) { vec2 edge; edge = (clamp(((abs((uv - vec2 (0.5))) + vec2 (vignette)) - vec2 (0.5)), 0.0, 1.0) / vignette); color.xyz = mix( color.xyz , colorMask.xyz , vec3( dot( edge, edge))); color.xyz = max( color.xyz , vec3( blackLevel)); return color; } vec4 scene( in vec2 uv ) { return pow( texture( g_txScene, uv), vec4( gamma)); } vec4 PS( in VS_OUTPUT xlat_var_input ) { vec4 color; color = vec4( scene( xlat_var_input.uvr).x , scene( xlat_var_input.uvg).y , scene( xlat_var_input.uvb).z , 1.00000); return FadeEdges( color, xlat_var_input.uvn); } // // User varying // in vec4 xlat_varying_SV_POSITION; // // Translator's entry point // void main() { VS_OUTPUT xlat_temp_xlat_var_input; xlat_temp_xlat_var_input.position = vec4( xlat_varying_SV_POSITION); xlat_temp_xlat_var_input.uvr = frag_TEXCOORD0; xlat_temp_xlat_var_input.uvg = frag_TEXCOORD1; xlat_temp_xlat_var_input.uvb = frag_TEXCOORD2; xlat_temp_xlat_var_input.uvn = frag_TEXCOORD3; rast_SV_Target = PS( xlat_temp_xlat_var_input); }