浏览代码

Fix edgesRenderer alpha issue

David Catuhe 7 年之前
父节点
当前提交
48b475ce09

+ 1 - 1
gui/src/3D/materials/shaders/fluent.fragment.fx

@@ -32,7 +32,7 @@ void main(void) {
 	float alpha = albedoColor.a;
 
 #ifdef TEXTURE
-	albedo = texture(albedoSampler, vUV).rgb;
+	albedo = texture2D(albedoSampler, vUV).rgb;
 #endif
 
 #ifdef HOVERLIGHT

+ 6 - 1
src/Rendering/babylon.edgesRenderer.ts

@@ -312,6 +312,12 @@
             var engine = scene.getEngine();
             this._lineShader._preBind();
 
+            if (this._source.edgesColor.a !== 1) {
+                engine.setAlphaMode(Engine.ALPHA_COMBINE);
+            } else {
+                engine.setAlphaMode(Engine.ALPHA_DISABLE);
+            }
+
             // VBOs
             engine.bindBuffers(this._buffers, this._ib, <Effect>this._lineShader.getEffect());
 
@@ -330,7 +336,6 @@
             // Draw order
             engine.drawElementsType(Material.TriangleFillMode, 0, this._indicesCount);
             this._lineShader.unbind();
-            engine.setDepthWrite(true);
         }
     }
 } 

+ 6 - 2
src/Rendering/babylon.renderingGroup.ts

@@ -137,8 +137,12 @@
             engine.setStencilBuffer(false);
 
             // Edges
-            for (var edgesRendererIndex = 0; edgesRendererIndex < this._edgesRenderers.length; edgesRendererIndex++) {
-                this._edgesRenderers.data[edgesRendererIndex].render();
+            if (this._edgesRenderers.length) {
+                for (var edgesRendererIndex = 0; edgesRendererIndex < this._edgesRenderers.length; edgesRendererIndex++) {
+                    this._edgesRenderers.data[edgesRendererIndex].render();
+                }
+
+                engine.setAlphaMode(Engine.ALPHA_DISABLE);
             }
 
             // Restore Stencil state.