Browse Source

gl.drawBuffers in scene

Benjamin Guignabert 5 years ago
parent
commit
13866132cd
4 changed files with 9 additions and 9 deletions
  1. 1 1
      package.json
  2. 1 1
      src/Materials/PBR/pbrBaseMaterial.ts
  3. 5 0
      src/Meshes/mesh.ts
  4. 2 7
      src/Rendering/renderingGroup.ts

+ 1 - 1
package.json

@@ -110,4 +110,4 @@
         "xhr2": "^0.1.4",
         "xhr2": "^0.1.4",
         "xmlbuilder": "8.2.2"
         "xmlbuilder": "8.2.2"
     }
     }
-}
+}

+ 1 - 1
src/Materials/PBR/pbrBaseMaterial.ts

@@ -1316,7 +1316,7 @@ export abstract class PBRBaseMaterial extends PushMaterial {
         MaterialHelper.PrepareDefinesForMultiview(scene, defines);
         MaterialHelper.PrepareDefinesForMultiview(scene, defines);
 
 
         // Deferred
         // Deferred
-        if (this.shouldRenderToMRT) {
+        if (true || this.shouldRenderToMRT) {
             MaterialHelper.PrepareDefinesForDeferred(scene, defines);
             MaterialHelper.PrepareDefinesForDeferred(scene, defines);
         }
         }
 
 

+ 5 - 0
src/Meshes/mesh.ts

@@ -1798,6 +1798,11 @@ export class Mesh extends AbstractMesh implements IGetSetVerticesData {
             return this;
             return this;
         }
         }
 
 
+        // Render to MRT
+        if (scene.highDefinitionPipeline) {
+            scene.drawBuffers(material);
+        }
+
         // Material
         // Material
         if (!instanceDataStorage.isFrozen || !this._effectiveMaterial || this._effectiveMaterial !== material) {
         if (!instanceDataStorage.isFrozen || !this._effectiveMaterial || this._effectiveMaterial !== material) {
             if (material._storeEffectOnSubMeshes) {
             if (material._storeEffectOnSubMeshes) {

+ 2 - 7
src/Rendering/renderingGroup.ts

@@ -219,9 +219,9 @@ export class RenderingGroup {
         for (subIndex = 0; subIndex < sortedArray.length; subIndex++) {
         for (subIndex = 0; subIndex < sortedArray.length; subIndex++) {
             subMesh = sortedArray[subIndex];
             subMesh = sortedArray[subIndex];
 
 
-            let material = subMesh.getMaterial();
-
             if (transparent) {
             if (transparent) {
+                let material = subMesh.getMaterial();
+
                 if (material && material.needDepthPrePass) {
                 if (material && material.needDepthPrePass) {
                     let engine = material.getScene().getEngine();
                     let engine = material.getScene().getEngine();
                     engine.setColorWrite(false);
                     engine.setColorWrite(false);
@@ -231,11 +231,6 @@ export class RenderingGroup {
                 }
                 }
             }
             }
 
 
-            // Render to MRT
-            if (material && material.getScene().highDefinitionPipeline) {
-                material.getScene().drawBuffers(material);
-            }
-
             subMesh.render(transparent);
             subMesh.render(transparent);
         }
         }
     }
     }