Bläddra i källkod

Web*RManager: Do not modify camera when not presenting.

Mr.doob 5 år sedan
förälder
incheckning
31fbde2f78

+ 1 - 1
src/renderers/WebGLRenderer.js

@@ -1153,7 +1153,7 @@ function WebGLRenderer( parameters ) {
 
 		if ( camera.parent === null ) camera.updateMatrixWorld();
 
-		if ( vr.enabled ) {
+		if ( vr.enabled && vr.isPresenting() ) {
 
 			camera = vr.getCamera( camera );
 

+ 0 - 9
src/renderers/webvr/WebVRManager.js

@@ -285,15 +285,6 @@ function WebVRManager( renderer ) {
 
 		var userHeight = referenceSpaceType === 'local-floor' ? 1.6 : 0;
 
-		if ( isPresenting() === false ) {
-
-			camera.position.set( 0, userHeight, 0 );
-			camera.rotation.set( 0, 0, 0 );
-
-			return camera;
-
-		}
-
 		device.depthNear = camera.near;
 		device.depthFar = camera.far;
 

+ 14 - 20
src/renderers/webvr/WebXRManager.js

@@ -199,38 +199,32 @@ function WebXRManager( renderer, gl ) {
 
 	this.getCamera = function ( camera ) {
 
-		if ( isPresenting() ) {
+		var parent = camera.parent;
+		var cameras = cameraVR.cameras;
 
-			var parent = camera.parent;
-			var cameras = cameraVR.cameras;
+		updateCamera( cameraVR, parent );
 
-			updateCamera( cameraVR, parent );
+		for ( var i = 0; i < cameras.length; i ++ ) {
 
-			for ( var i = 0; i < cameras.length; i ++ ) {
+			updateCamera( cameras[ i ], parent );
 
-				updateCamera( cameras[ i ], parent );
-
-			}
-
-			// update camera and its children
-
-			camera.matrixWorld.copy( cameraVR.matrixWorld );
-
-			var children = camera.children;
+		}
 
-			for ( var i = 0, l = children.length; i < l; i ++ ) {
+		// update camera and its children
 
-				children[ i ].updateMatrixWorld( true );
+		camera.matrixWorld.copy( cameraVR.matrixWorld );
 
-			}
+		var children = camera.children;
 
-			setProjectionFromUnion( cameraVR, cameraL, cameraR );
+		for ( var i = 0, l = children.length; i < l; i ++ ) {
 
-			return cameraVR;
+			children[ i ].updateMatrixWorld( true );
 
 		}
 
-		return camera;
+		setProjectionFromUnion( cameraVR, cameraL, cameraR );
+
+		return cameraVR;
 
 	};