فهرست منبع

WebVRManager: Fixed 360 panorama/video examples.

Mr.doob 8 سال پیش
والد
کامیت
d394e74dcf
3فایلهای تغییر یافته به همراه20 افزوده شده و 12 حذف شده
  1. 4 3
      examples/webvr_panorama.html
  2. 14 9
      src/renderers/WebGLRenderer.js
  3. 2 0
      src/renderers/webvr/WebVRManager.js

+ 4 - 3
examples/webvr_panorama.html

@@ -49,7 +49,7 @@
 
 			scene = new THREE.Scene();
 
-			camera = new THREE.PerspectiveCamera( 90, window.innerWidth / window.innerHeight, 0.1, 100 );
+			camera = new THREE.PerspectiveCamera( 90, window.innerWidth / window.innerHeight, 1, 1000 );
 			camera.layers.enable( 1 );
 
 			WEBVR.getVRDisplay( function ( display ) {
@@ -60,6 +60,7 @@
 
 			} );
 
+			var geometry = new THREE.CubeGeometry( 100, 100, 100 );
 			var textures = getTexturesFromAtlasFile( "textures/cube/sun_temple_stripe_stereo.jpg", 12 );
 
 			var materials = [];
@@ -70,7 +71,7 @@
 
 			}
 
-			var skyBox = new THREE.Mesh( new THREE.CubeGeometry( 1, 1, 1 ), new THREE.MeshFaceMaterial( materials ) );
+			var skyBox = new THREE.Mesh( geometry, materials );
 			skyBox.applyMatrix( new THREE.Matrix4().makeScale( 1, 1, - 1 ) );
 			skyBox.layers.set( 1 );
 			scene.add( skyBox );
@@ -84,7 +85,7 @@
 
 			}
 
-			var skyBoxR = new THREE.Mesh( new THREE.CubeGeometry( 1, 1, 1 ), new THREE.MeshFaceMaterial( materialsR ) );
+			var skyBoxR = new THREE.Mesh( geometry, materialsR );
 			skyBoxR.applyMatrix( new THREE.Matrix4().makeScale( 1, 1, - 1 ) );
 			skyBoxR.layers.set( 2 );
 			scene.add( skyBoxR );

+ 14 - 9
src/renderers/WebGLRenderer.js

@@ -1373,18 +1373,23 @@ function WebGLRenderer( parameters ) {
 				for ( var j = 0, jl = cameras.length; j < jl; j ++ ) {
 
 					var camera2 = cameras[ j ];
-					var bounds = camera2.bounds;
 
-					var x = bounds.x * _width;
-					var y = bounds.y * _height;
-					var width = bounds.z * _width;
-					var height = bounds.w * _height;
+					if ( object.layers.test( camera2.layers ) ) {
 
-					_this.setViewport( x, y, width, height );
-					_this.setScissor( x, y, width, height );
-					_this.setScissorTest( true );
+						var bounds = camera2.bounds;
 
-					renderObject( object, scene, camera2, geometry, material, group );
+						var x = bounds.x * _width;
+						var y = bounds.y * _height;
+						var width = bounds.z * _width;
+						var height = bounds.w * _height;
+
+						_this.setViewport( x, y, width, height );
+						_this.setScissor( x, y, width, height );
+						_this.setScissorTest( true );
+
+						renderObject( object, scene, camera2, geometry, material, group );
+
+					}
 
 				}
 

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

@@ -34,6 +34,8 @@ function WebVRManager( renderer ) {
 	cameraR.layers.enable( 2 );
 
 	var cameraVR = new ArrayCamera( [ cameraL, cameraR ] );
+	cameraVR.layers.enable( 1 );
+	cameraVR.layers.enable( 2 );
 
 	//