David Catuhe 6 лет назад
Родитель
Сommit
6c73a1ba23
3 измененных файлов с 12 добавлено и 4 удалено
  1. 6 2
      sandbox/index.js
  2. 1 1
      src/Engines/engine.ts
  3. 5 1
      src/scene.ts

+ 6 - 2
sandbox/index.js

@@ -214,8 +214,12 @@ if (BABYLON.Engine.isSupported()) {
             currentScene.debugLayer.show();
         }
 
-        currentScene.meshes.forEach((mesh) => mesh.doNotSyncBoundingInfo = true);
-        currentScene.materials.forEach((mat) => mat.freeze());
+        currentScene.meshes.forEach((mesh) => {
+            mesh.doNotSyncBoundingInfo = true;
+        });
+        currentScene.materials.forEach((mat) => {
+            mat.freeze()
+        });
 
         currentScene.meshes.forEach((mesh) => mesh.ignoreNonUniformScaling = true);
         currentScene.transformNodes.forEach((node) => node.ignoreNonUniformScaling = true);

+ 1 - 1
src/Engines/engine.ts

@@ -6364,7 +6364,7 @@ export class Engine {
             if (uniform) {
                 this._boundUniforms[index] = uniform;
             }
-        }        
+        }
         this._currentEffect = null;
     }
 

+ 5 - 1
src/scene.ts

@@ -4113,6 +4113,7 @@ export class Scene extends AbstractScene implements IAnimatable {
 
         if (this.renderTargetsEnabled) {
             this._intermediateRendering = true;
+            let needRebind = false;
 
             if (this._renderTargets.length > 0) {
                 Tools.StartPerformanceCounter("Render targets", this._renderTargets.length > 0);
@@ -4122,6 +4123,7 @@ export class Scene extends AbstractScene implements IAnimatable {
                         this._renderId++;
                         var hasSpecialRenderTargetCamera = renderTarget.activeCamera && renderTarget.activeCamera !== this.activeCamera;
                         renderTarget.render((<boolean>hasSpecialRenderTargetCamera), this.dumpNextRenderTargets);
+                        needRebind = true;
                     }
                 }
                 Tools.EndPerformanceCounter("Render targets", this._renderTargets.length > 0);
@@ -4136,7 +4138,9 @@ export class Scene extends AbstractScene implements IAnimatable {
             this._intermediateRendering = false;
 
             // Restore framebuffer after rendering to targets
-            this._bindFrameBuffer();
+            if (needRebind) {
+                this._bindFrameBuffer();
+            }
         }
 
         this.onAfterRenderTargetsRenderObservable.notifyObservers(this);