Procházet zdrojové kódy

Updated VRControls/VREffects to match WebVR spec

Will use spec-compliant paths when available and fall back to older
paths when it's not.
Brandon Jones před 10 roky
rodič
revize
01d7456ac5

+ 5 - 1
examples/js/controls/VRControls.js

@@ -71,7 +71,11 @@ THREE.VRControls = function ( object, callback ) {
 
 		if ( vrInput === undefined ) return;
 
-		vrInput.zeroSensor();
+		if ( 'resetSensor' in vrInput) {
+			vrInput.resetSensor();
+		} else if ( 'zeroSensor' in vrInput) {
+			vrInput.zeroSensor();
+		}
 
 	};
 

+ 17 - 4
examples/js/effects/VREffect.js

@@ -47,10 +47,23 @@ THREE.VREffect = function ( renderer, done ) {
 				if ( devices[i] instanceof HMDVRDevice ) {
 					vrHMD = devices[i];
 					self._vrHMD = vrHMD;
-					self.leftEyeTranslation = vrHMD.getEyeTranslation( "left" );
-					self.rightEyeTranslation = vrHMD.getEyeTranslation( "right" );
-					self.leftEyeFOV = vrHMD.getRecommendedEyeFieldOfView( "left" );
-					self.rightEyeFOV = vrHMD.getRecommendedEyeFieldOfView( "right" );
+
+					if ( 'getEyeParameters' in vrHMD ) {
+						var leftEyeParams = vrHMD.getEyeParameters( "left" );
+						var rightEyeParams = vrHMD.getEyeParameters( "right" );
+						self.leftEyeTranslation = leftEyeParams.eyeTranslation;
+						self.rightEyeTranslation = rightEyeParams.eyeTranslation;
+						self.leftEyeFOV = leftEyeParams.recommendedFieldOfView;
+						self.rightEyeFOV = rightEyeParams.recommendedFieldOfView;
+					} else {
+						// TODO: This is an older code path and not spec compliant.
+						// It should be removed at some point in the near future.
+						self.leftEyeTranslation = vrHMD.getEyeTranslation( "left" );
+						self.rightEyeTranslation = vrHMD.getEyeTranslation( "right" );
+						self.leftEyeFOV = vrHMD.getRecommendedEyeFieldOfView( "left" );
+						self.rightEyeFOV = vrHMD.getRecommendedEyeFieldOfView( "right" );
+					}
+					
 					break; // We keep the first we encounter
 				}
 			}