summaryrefslogtreecommitdiffstats
path: root/src/demos/hdr/shaders/cg/tonemap.cg
diff options
context:
space:
mode:
authorKenneth Russel <[email protected]>2009-06-15 23:12:27 +0000
committerKenneth Russel <[email protected]>2009-06-15 23:12:27 +0000
commit41cd6c47b23975098cd155517790e018670785e7 (patch)
tree247333528ad674d427ba96b1e05810f7961d609e /src/demos/hdr/shaders/cg/tonemap.cg
parent935d2596c13371bb745d921dbcb9f05b0c11a010 (diff)
Copied JOGL_2_SANDBOX r350 on to trunk; JOGL_2_SANDBOX branch is now closed
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@352 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
Diffstat (limited to 'src/demos/hdr/shaders/cg/tonemap.cg')
-rwxr-xr-xsrc/demos/hdr/shaders/cg/tonemap.cg37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/demos/hdr/shaders/cg/tonemap.cg b/src/demos/hdr/shaders/cg/tonemap.cg
new file mode 100755
index 0000000..c3d218f
--- /dev/null
+++ b/src/demos/hdr/shaders/cg/tonemap.cg
@@ -0,0 +1,37 @@
+// 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);
+}