Pārlūkot izejas kodu

dont run post processes on utility layer

Trevor Baron 7 gadi atpakaļ
vecāks
revīzija
132eca72d1

+ 1 - 0
src/Rendering/babylon.utilityLayerRenderer.ts

@@ -53,6 +53,7 @@ module BABYLON {
         constructor(/** the original scene that will be rendered on top of */ public originalScene:Scene){
             // Create scene which will be rendered in the foreground and remove it from being referenced by engine to avoid interfering with existing app
             this.utilityLayerScene = new BABYLON.Scene(originalScene.getEngine());
+            this.utilityLayerScene._renderPostProcesses = false;
             originalScene.getEngine().scenes.pop();
 
             // Detach controls on utility scene, events will be fired by logic below to handle picking priority

+ 4 - 3
src/babylon.scene.ts

@@ -4333,7 +4333,8 @@
         public updateAlternateTransformMatrix(alternateCamera: Camera): void {
             this._setAlternateTransformMatrix(alternateCamera.getViewMatrix(), alternateCamera.getProjectionMatrix());
         }
-
+        /** @hidden */
+        public _renderPostProcesses = true;
         private _renderForCamera(camera: Camera, rigParent?: Camera): void {
             if (camera && camera._skipRendering) {
                 return;
@@ -4412,7 +4413,7 @@
             this.onAfterRenderTargetsRenderObservable.notifyObservers(this);
 
             // Prepare Frame
-            if (this.postProcessManager) {
+            if (this.postProcessManager && this._renderPostProcesses) {
                 this.postProcessManager._prepareFrame();
             }
 
@@ -4432,7 +4433,7 @@
             }
             
             // Finalize frame
-            if (this.postProcessManager) {
+            if (this.postProcessManager && this._renderPostProcesses) {
                 this.postProcessManager._finalizeFrame(camera.isIntermediate);
             }