From 5257194c4825406920c9aa614a7d7e9e5f2a703f Mon Sep 17 00:00:00 2001
From: sam <sam>
Date: Fri, 24 Feb 2017 01:11:59 -0800
Subject: [PATCH] SImplify the overlay PLumber

---
 libraries/render-utils/src/RenderPipelines.cpp       | 7 ++++---
 libraries/render-utils/src/overlay3D_model.slf       | 4 ++--
 libraries/render-utils/src/overlay3D_translucent.slf | 3 ++-
 libraries/render/src/render/ShapePipeline.h          | 1 +
 4 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/libraries/render-utils/src/RenderPipelines.cpp b/libraries/render-utils/src/RenderPipelines.cpp
index 158daad54c..508b035a5a 100644
--- a/libraries/render-utils/src/RenderPipelines.cpp
+++ b/libraries/render-utils/src/RenderPipelines.cpp
@@ -114,9 +114,10 @@ void initOverlay3DPipelines(ShapePlumber& plumber) {
 
         auto simpleProgram = isOpaque ? opaqueProgram : translucentProgram;
         auto unlitProgram = isOpaque ? unlitOpaqueProgram : unlitTranslucentProgram;
-        plumber.addPipeline(builder.withoutUnlit().withMaterial().build(), opaqueMaterialProgram, state, &lightBatchSetter);
-        plumber.addPipeline(builder.withoutUnlit().build(), simpleProgram, state, &lightBatchSetter);
-        plumber.addPipeline(builder.withUnlit().build(), unlitProgram, state, &batchSetter);
+
+        plumber.addPipeline(builder.withoutUnlit().withMaterial().build().key(), opaqueMaterialProgram, state, &lightBatchSetter);
+        plumber.addPipeline(builder.withoutUnlit().withoutMaterial().build().key(), simpleProgram, state, &lightBatchSetter);
+        plumber.addPipeline(builder.withUnlit().withoutMaterial().build().key(), unlitProgram, state, &batchSetter);
     }
 }
 
diff --git a/libraries/render-utils/src/overlay3D_model.slf b/libraries/render-utils/src/overlay3D_model.slf
index cd4179b112..979a6f2201 100644
--- a/libraries/render-utils/src/overlay3D_model.slf
+++ b/libraries/render-utils/src/overlay3D_model.slf
@@ -112,9 +112,9 @@ void main(void) {
         opacity);
 
     color.rgb += emissive;
-    color.rgb = vec3(0.5, 0.5, 1.0);
+   // color.rgb = vec3(0.5, 0.5, 1.0);
     // Apply standard tone mapping
-    _fragColor = vec4(pow(color.xyz, vec3(1.0 / 2.2)), 0.9);
+    _fragColor = vec4(pow(color.xyz, vec3(1.0 / 2.2)), 1.0);
     //_fragColor = vec4(pow(color.xyz, vec3(1.0 / 2.2)), color.w);
 
     /*_fragColor = vec4(evalGlobalLightingAlphaBlended(
diff --git a/libraries/render-utils/src/overlay3D_translucent.slf b/libraries/render-utils/src/overlay3D_translucent.slf
index 0343567127..9f00cdf982 100644
--- a/libraries/render-utils/src/overlay3D_translucent.slf
+++ b/libraries/render-utils/src/overlay3D_translucent.slf
@@ -82,7 +82,8 @@ void main(void) {
         fragRoughness,
         fragOpacity);
 
-    color.xyz += vec3(1.0, 0.0, 0.0) * fragOpacity;
+    color.xyz += vec3(0.0, 1.0, 0.0) * fragOpacity;
+    color.w = 1.0;
 
     // Apply standard tone mapping
     _fragColor = vec4(pow(color.xyz, vec3(1.0 / 2.2)), color.w);
diff --git a/libraries/render/src/render/ShapePipeline.h b/libraries/render/src/render/ShapePipeline.h
index 1e0f1cad76..0c77a15184 100644
--- a/libraries/render/src/render/ShapePipeline.h
+++ b/libraries/render/src/render/ShapePipeline.h
@@ -128,6 +128,7 @@ public:
             Flags _mask{0};
         };
         Filter(const Filter::Builder& builder) : Filter(builder._flags, builder._mask) {}
+        ShapeKey key() const { return ShapeKey(_flags); }
     protected:
         friend class ShapePlumber;
         Flags _flags{0};