Преглед изворни кода

Merge pull request #14146 from mrdoob/webxr

WebXRManager: Expose frameOfReferenceType
Mr.doob пре 7 година
родитељ
комит
517bbd7bb4

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

@@ -7,7 +7,7 @@
 
 var WEBVR = {
 
-	createButton: function ( renderer ) {
+	createButton: function ( renderer, options ) {
 
 		function showEnterVR( device ) {
 
@@ -38,9 +38,12 @@ var WEBVR = {
 
 			function onSessionStarted( session ) {
 
+				if ( options === undefined ) options = {};
+				if ( options.frameOfReferenceType === undefined ) options.frameOfReferenceType = 'stage';
+
 				session.addEventListener( 'end', onSessionEnded );
 
-				renderer.vr.setSession( session );
+				renderer.vr.setSession( session, options );
 				button.textContent = 'EXIT XR';
 
 				currentSession = session;

+ 1 - 1
examples/webvr_panorama.html

@@ -43,7 +43,7 @@
 			renderer.vr.userHeight = 0; // TOFIX
 			document.body.appendChild( renderer.domElement );
 
-			document.body.appendChild( WEBVR.createButton( renderer ) );
+			document.body.appendChild( WEBVR.createButton( renderer, { frameOfReferenceType: 'headModel' } ) );
 
 			//
 

+ 1 - 1
examples/webvr_rollercoaster.html

@@ -40,7 +40,7 @@
 			renderer.vr.userHeight = 0; // TOFIX
 			document.body.appendChild( renderer.domElement );
 
-			document.body.appendChild( WEBVR.createButton( renderer ) );
+			document.body.appendChild( WEBVR.createButton( renderer, { frameOfReferenceType: 'eyeLevel' } ) );
 
 			//
 

+ 2 - 2
src/renderers/webvr/WebXRManager.js

@@ -58,7 +58,7 @@ function WebXRManager( renderer ) {
 
 	//
 
-	this.setSession = function ( value ) {
+	this.setSession = function ( value, options ) {
 
 		session = value;
 
@@ -72,7 +72,7 @@ function WebXRManager( renderer ) {
 			} );
 
 			session.baseLayer = new XRWebGLLayer( session, gl );
-			session.requestFrameOfReference( 'stage' ).then( function ( value ) {
+			session.requestFrameOfReference( options.frameOfReferenceType ).then( function ( value ) {
 
 				frameOfRef = value;