// Tone mapping pass #include "hdr.cg" half4 main(fragin In, uniform samplerRECT sceneTex : TEXUNIT0, uniform samplerRECT blurTex : TEXUNIT1, uniform sampler1D gammaTex : TEXUNIT2, uniform samplerRECT vignetteTex : TEXUNIT3, uniform float blurAmount, uniform float4 windowSize, uniform float exposure ) : COLOR { // sum original and blurred image half3 c = lerp(texRECT(sceneTex, In.tex0.xy), texRECT_bilinear(blurTex, In.tex1.xy), blurAmount).xyz; // exposure c = c * half(exposure); // vignette effect (makes brightness drop off with distance from center) // vignette(c, In.wpos, windowSize.xy, windowSize.zw); c = c * texRECT(vignetteTex, In.tex0.xy).rgb; // gamma correction #if 0 // use math c = pow(c, 1.0 / 2.2); #else // use lut c.r = h1tex1D(gammaTex, c.r); c.g = h1tex1D(gammaTex, c.g); c.b = h1tex1D(gammaTex, c.b); #endif return half4(c, 1.0); }