Morgan Villedieu 6 年之前
父节点
当前提交
09781b5792
共有 3 个文件被更改,包括 13 次插入12 次删除
  1. 2 1
      examples/js/vr/WebVR.js
  2. 0 1
      examples/webvr_vive_sculpt.html
  3. 11 10
      src/renderers/webvr/WebXRManager.js

+ 2 - 1
examples/js/vr/WebVR.js

@@ -129,12 +129,13 @@ var WEBVR = {
 
 
 		}
 		}
 
 
-		if ( 'xr' in navigator ) {
+		if ( 'xr' in navigator && 'supportsSession' in navigator.xr ) {
 
 
 			var button = document.createElement( 'button' );
 			var button = document.createElement( 'button' );
 			button.style.display = 'none';
 			button.style.display = 'none';
 
 
 			stylizeElement( button );
 			stylizeElement( button );
+
 			navigator.xr.supportsSession( 'immersive-vr' ).then( showEnterXR );
 			navigator.xr.supportsSession( 'immersive-vr' ).then( showEnterXR );
 
 
 			return button;
 			return button;

+ 0 - 1
examples/webvr_vive_sculpt.html

@@ -16,7 +16,6 @@
 		<script src="../build/three.js"></script>
 		<script src="../build/three.js"></script>
 
 
 		<script src="js/vr/ViveController.js"></script>
 		<script src="js/vr/ViveController.js"></script>
-		<script src="js/vr/HelioWebXRPolyfill.js"></script>
 		<script src="js/vr/WebVR.js"></script>
 		<script src="js/vr/WebVR.js"></script>
 
 
 		<script src="js/loaders/OBJLoader.js"></script>
 		<script src="js/loaders/OBJLoader.js"></script>

+ 11 - 10
src/renderers/webvr/WebXRManager.js

@@ -16,6 +16,8 @@ function WebXRManager( renderer ) {
 
 
 	var session = null;
 	var session = null;
 
 
+	var framebufferScaleFactor = 1.0;
+
 	var referenceSpace = null;
 	var referenceSpace = null;
 	var referenceSpaceType = 'local-floor';
 	var referenceSpaceType = 'local-floor';
 
 
@@ -101,6 +103,8 @@ function WebXRManager( renderer ) {
 
 
 	this.setFramebufferScaleFactor = function ( value ) {
 	this.setFramebufferScaleFactor = function ( value ) {
 
 
+		framebufferScaleFactor = value;
+
 	};
 	};
 
 
 	this.setReferenceSpaceType = function ( value ) {
 	this.setReferenceSpaceType = function ( value ) {
@@ -127,13 +131,17 @@ function WebXRManager( renderer ) {
 			session.addEventListener( 'end', onSessionEnd );
 			session.addEventListener( 'end', onSessionEnd );
 
 
 			session.updateRenderState( { baseLayer: new XRWebGLLayer( session, gl ) } );
 			session.updateRenderState( { baseLayer: new XRWebGLLayer( session, gl ) } );
+
 			session.requestReferenceSpace( referenceSpaceType ).then( onRequestReferenceSpace );
 			session.requestReferenceSpace( referenceSpaceType ).then( onRequestReferenceSpace );
 
 
+			//
+
 			inputSources = session.inputSources;
 			inputSources = session.inputSources;
 
 
 			session.addEventListener( 'inputsourceschange', function () {
 			session.addEventListener( 'inputsourceschange', function () {
 
 
 				inputSources = session.inputSources;
 				inputSources = session.inputSources;
+				console.log( inputSources );
 
 
 				for ( var i = 0; i < controllers.length; i ++ ) {
 				for ( var i = 0; i < controllers.length; i ++ ) {
 
 
@@ -214,9 +222,7 @@ function WebXRManager( renderer ) {
 		if ( pose !== null ) {
 		if ( pose !== null ) {
 
 
 			var views = pose.views;
 			var views = pose.views;
-			var baseLayer;
-
-			baseLayer = session.renderState.baseLayer;
+			var baseLayer = session.renderState.baseLayer;
 
 
 			renderer.setFramebuffer( baseLayer.framebuffer );
 			renderer.setFramebuffer( baseLayer.framebuffer );
 
 
@@ -224,10 +230,7 @@ function WebXRManager( renderer ) {
 
 
 				var view = views[ i ];
 				var view = views[ i ];
 				var viewport = baseLayer.getViewport( view );
 				var viewport = baseLayer.getViewport( view );
-
-				var viewMatrix;
-
-				viewMatrix = view.transform.inverse.matrix;
+				var viewMatrix = view.transform.inverse.matrix;
 
 
 				var camera = cameraVR.cameras[ i ];
 				var camera = cameraVR.cameras[ i ];
 				camera.matrix.fromArray( viewMatrix ).getInverse( camera.matrix );
 				camera.matrix.fromArray( viewMatrix ).getInverse( camera.matrix );
@@ -254,9 +257,7 @@ function WebXRManager( renderer ) {
 
 
 			if ( inputSource ) {
 			if ( inputSource ) {
 
 
-				var inputPose;
-
-				inputPose = frame.getPose( inputSource.targetRaySpace, referenceSpace );
+				var inputPose = frame.getPose( inputSource.targetRaySpace, referenceSpace );
 
 
 				if ( inputPose !== null ) {
 				if ( inputPose !== null ) {