Quellcode durchsuchen

force autoclear-false in AR mode

Raanan Weber vor 5 Jahren
Ursprung
Commit
d4f21da5b4
1 geänderte Dateien mit 7 neuen und 0 gelöschten Zeilen
  1. 7 0
      src/XR/webXRExperienceHelper.ts

+ 7 - 0
src/XR/webXRExperienceHelper.ts

@@ -14,6 +14,7 @@ import { Logger } from '../Misc/logger';
  */
 export class WebXRExperienceHelper implements IDisposable {
     private _nonVRCamera: Nullable<Camera> = null;
+    private _originalSceneAutoClear = true;
     private _supported = false;
 
     /**
@@ -119,6 +120,8 @@ export class WebXRExperienceHelper implements IDisposable {
         }).then(() => {
             // run the render loop
             this.sessionManager.runXRRenderLoop();
+            // Cache pre xr scene settings
+            this._originalSceneAutoClear = this.scene.autoClear;
             this._nonVRCamera = this.scene.activeCamera;
 
             this.scene.activeCamera = this.camera;
@@ -126,6 +129,8 @@ export class WebXRExperienceHelper implements IDisposable {
             if (sessionMode !== 'immersive-ar') {
                 this._nonXRToXRCamera();
             } else {
+                // Kept here, TODO - check if needed
+                this.scene.autoClear = false;
                 this.camera.compensateOnFirstFrame = false;
             }
 
@@ -135,6 +140,8 @@ export class WebXRExperienceHelper implements IDisposable {
                     c.outputRenderTarget = null;
                 });
 
+                // Restore scene settings
+                this.scene.autoClear = this._originalSceneAutoClear;
                 this.scene.activeCamera = this._nonVRCamera;
                 if (sessionMode !== 'immersive-ar' && this.camera.compensateOnFirstFrame) {
                     if ((<any>this._nonVRCamera).setPosition) {