Explorar o código

Fixed utility layer double camera check

David Catuhe %!s(int64=7) %!d(string=hai) anos
pai
achega
31d92d8288
Modificáronse 2 ficheiros con 20 adicións e 17 borrados
  1. 1 1
      src/Rendering/babylon.utilityLayerRenderer.ts
  2. 19 16
      src/babylon.scene.ts

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

@@ -43,7 +43,7 @@ module BABYLON {
          */
         public render(){
             this._updateCamera();
-            this.utilityLayerScene.render();
+            this.utilityLayerScene.render(false);
         }
 
         /**

+ 19 - 16
src/babylon.scene.ts

@@ -4710,8 +4710,9 @@
 
         /** 
          * Render the scene
+         * @param updateCamerasd defines a boolean indicating if cameras must update according to their inputs (true by default)
          */
-        public render(): void {
+        public render(updateCameras = true): void {
             if (this.isDisposed) {
                 return;
             }
@@ -4799,23 +4800,25 @@
             }
 
             // Update Cameras
-            if (this.activeCameras.length > 0) {
-                for (var cameraIndex = 0; cameraIndex < this.activeCameras.length; cameraIndex++) {
-                    let camera = this.activeCameras[cameraIndex];
-                    camera.update();
-                    if (camera.cameraRigMode !== Camera.RIG_MODE_NONE) {
-                        // rig cameras
-                        for (var index = 0; index < camera._rigCameras.length; index++) {
-                            camera._rigCameras[index].update();
+            if (updateCameras) {
+                if (this.activeCameras.length > 0) {
+                    for (var cameraIndex = 0; cameraIndex < this.activeCameras.length; cameraIndex++) {
+                        let camera = this.activeCameras[cameraIndex];
+                        camera.update();
+                        if (camera.cameraRigMode !== Camera.RIG_MODE_NONE) {
+                            // rig cameras
+                            for (var index = 0; index < camera._rigCameras.length; index++) {
+                                camera._rigCameras[index].update();
+                            }
                         }
                     }
-                }
-            } else if (this.activeCamera) {
-                this.activeCamera.update();
-                if (this.activeCamera.cameraRigMode !== Camera.RIG_MODE_NONE) {
-                    // rig cameras
-                    for (var index = 0; index < this.activeCamera._rigCameras.length; index++) {
-                        this.activeCamera._rigCameras[index].update();
+                } else if (this.activeCamera) {
+                    this.activeCamera.update();
+                    if (this.activeCamera.cameraRigMode !== Camera.RIG_MODE_NONE) {
+                        // rig cameras
+                        for (var index = 0; index < this.activeCamera._rigCameras.length; index++) {
+                            this.activeCamera._rigCameras[index].update();
+                        }
                     }
                 }
             }