Quellcode durchsuchen

Merge branch 'master' of https://github.com/BabylonJS/Babylon.js

David Catuhe vor 6 Jahren
Ursprung
Commit
1e3d0e2ae0
2 geänderte Dateien mit 11 neuen und 7 gelöschten Zeilen
  1. 11 2
      src/Layers/effectLayer.ts
  2. 0 5
      src/Shaders/glowMapGeneration.fragment.fx

+ 11 - 2
src/Layers/effectLayer.ts

@@ -349,9 +349,13 @@ export abstract class EffectLayer {
                 this._renderSubMesh(alphaTestSubMeshes.data[index]);
             }
 
+            const previousAlphaMode = engine.getAlphaMode();
+
             for (index = 0; index < transparentSubMeshes.length; index++) {
-                this._renderSubMesh(transparentSubMeshes.data[index]);
+                this._renderSubMesh(transparentSubMeshes.data[index], true);
             }
+
+            engine.setAlphaMode(previousAlphaMode);
         };
 
         this._mainTexture.onClearObservable.add((engine: Engine) => {
@@ -621,7 +625,7 @@ export abstract class EffectLayer {
     /**
      * Renders the submesh passed in parameter to the generation map.
      */
-    protected _renderSubMesh(subMesh: SubMesh): void {
+    protected _renderSubMesh(subMesh: SubMesh, enableAlphaMode: boolean = false): void {
         if (!this.shouldRender()) {
             return;
         }
@@ -709,6 +713,11 @@ export abstract class EffectLayer {
             // Morph targets
             MaterialHelper.BindMorphTargetParameters(mesh, this._effectLayerMapGenerationEffect);
 
+            // Alpha mode
+            if (enableAlphaMode) {
+                engine.setAlphaMode(material.alphaMode);
+            }
+
             // Draw
             mesh._processRendering(subMesh, this._effectLayerMapGenerationEffect, Material.TriangleFillMode, batch, hardwareInstancedRendering,
                 (isInstance, world) => this._effectLayerMapGenerationEffect.setMatrix("world", world));

+ 0 - 5
src/Shaders/glowMapGeneration.fragment.fx

@@ -57,9 +57,4 @@ vec4 finalColor = glowColor;
 #else
     gl_FragColor = finalColor;
 #endif
-
-#ifdef GLOW
-    gl_FragColor.rgb *= gl_FragColor.a;
-    gl_FragColor.a = 1.0;
-#endif
 }