summaryrefslogtreecommitdiffstats
path: root/src/demos/dualDepthPeeling/shaders/dual_peeling_final.fp
diff options
context:
space:
mode:
Diffstat (limited to 'src/demos/dualDepthPeeling/shaders/dual_peeling_final.fp')
-rw-r--r--src/demos/dualDepthPeeling/shaders/dual_peeling_final.fp28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/demos/dualDepthPeeling/shaders/dual_peeling_final.fp b/src/demos/dualDepthPeeling/shaders/dual_peeling_final.fp
new file mode 100644
index 0000000..ec57117
--- /dev/null
+++ b/src/demos/dualDepthPeeling/shaders/dual_peeling_final.fp
@@ -0,0 +1,28 @@
+//--------------------------------------------------------------------------------------
+// Order Independent Transparency with Dual Depth Peeling
+//
+// Author: Louis Bavoil
+//
+// Copyright (c) NVIDIA Corporation. All rights reserved.
+//--------------------------------------------------------------------------------------
+
+uniform samplerRECT DepthBlenderTex;
+uniform samplerRECT FrontBlenderTex;
+uniform samplerRECT BackBlenderTex;
+
+void main(void)
+{
+ vec4 frontColor = textureRect(FrontBlenderTex, gl_FragCoord.xy);
+ vec3 backColor = textureRect(BackBlenderTex, gl_FragCoord.xy).rgb;
+ float alphaMultiplier = 1.0 - frontColor.w;
+
+ // front + back
+ gl_FragColor.rgb = frontColor + backColor * alphaMultiplier;
+
+ // front blender
+ //gl_FragColor.rgb = frontColor + vec3(alphaMultiplier);
+
+ // back blender
+ //gl_FragColor.rgb = backColor;
+}