Bläddra i källkod

Remove _multiview examples and fix url on files for multiview multiple views example

Fernando Serrano 6 år sedan
förälder
incheckning
701c145379
3 ändrade filer med 1 tillägg och 596 borttagningar
  1. 1 1
      examples/files.js
  2. 0 308
      examples/webvr_ballshooter_multiview.html
  3. 0 287
      examples/webvr_dragging_multiview.html

+ 1 - 1
examples/files.js

@@ -201,7 +201,7 @@ var files = {
 		"webgl_multiple_renderers",
 		"webgl_multiple_scenes_comparison",
 		"webgl_multiple_views",
-		"webvr_multiple_views_multiview",
+		"webgl_multiple_views_multiview",
 		"webgl_nearestneighbour",
 		"webgl_panorama_cube",
 		"webgl_panorama_dualfisheye",

+ 0 - 308
examples/webvr_ballshooter_multiview.html

@@ -1,308 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
-		<title>three.js webvr - ball shooter with multiview</title>
-		<meta charset="utf-8">
-		<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
-		<style>
-			body {
-				font-family: Monospace;
-				background-color: #101010;
-				color: #fff;
-				margin: 0px;
-				overflow: hidden;
-			}
-			a {
-				color: #48f;
-			}
-		</style>
-	</head>
-	<body>
-
-		<script src="../build/three.js"></script>
-		<script src="js/vr/WebVR.js"></script>
-
-		<script src="js/geometries/BoxLineGeometry.js"></script>
-
-		<script>
-
-			var container;
-			var ms;
-
-			var camera, scene, renderer;
-			var controller1, controller2;
-
-			var avgCounter = new Array(240, 0);
-
-			var room;
-
-			var count = 0;
-			var radius = 0.08;
-			var normal = new THREE.Vector3();
-			var relativeVelocity = new THREE.Vector3();
-
-			var clock = new THREE.Clock();
-
-			init();
-			animate();
-
-			function init() {
-
-				container = document.createElement( 'div' );
-				document.body.appendChild( container );
-
-				const urlParams = new URLSearchParams(window.location.search);
-				const multiview = urlParams.has('enableMultiview');
-
-				scene = new THREE.Scene();
-				scene.background = new THREE.Color( 0x505050 );
-
-				camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.1, 10 );
-
-				room = new THREE.LineSegments(
-					new THREE.BoxLineGeometry( 6, 6, 6, 10, 10, 10 ),
-					new THREE.LineBasicMaterial( { color: 0x808080 } )
-				);
-				room.geometry.translate( 0, 3, 0 );
-				scene.add( room );
-
-				var light = new THREE.HemisphereLight( 0xffffff, 0x444444 );
-				light.position.set( 1, 1, 1 );
-				scene.add( light );
-
-				var geometry = new THREE.IcosahedronBufferGeometry( radius, 2 );
-
-				var numObjects = urlParams.get('num') || 200;
-
-				for ( var i = 0; i < numObjects; i ++ ) {
-
-					var object = new THREE.Mesh( geometry, new THREE.MeshLambertMaterial( { color: Math.random() * 0xffffff } ) );
-
-					object.position.x = Math.random() * 4 - 2;
-					object.position.y = Math.random() * 4;
-					object.position.z = Math.random() * 4 - 2;
-
-					object.userData.velocity = new THREE.Vector3();
-					object.userData.velocity.x = Math.random() * 0.01 - 0.005;
-					object.userData.velocity.y = Math.random() * 0.01 - 0.005;
-					object.userData.velocity.z = Math.random() * 0.01 - 0.005;
-
-					room.add( object );
-
-				}
-
-				//
-
-				var canvas = document.createElement( 'canvas' );
-				var context = canvas.getContext( 'webgl2', { antialias: false } );
-				renderer = new THREE.WebGLRenderer( { canvas: canvas, context: context, multiview: multiview } );
-				renderer.setPixelRatio( window.devicePixelRatio );
-				renderer.setSize( window.innerWidth, window.innerHeight );
-				renderer.vr.enabled = true;
-				container.appendChild( renderer.domElement );
-
-				//
-
-				var info = document.createElement( 'div' );
-				info.style.position = 'absolute';
-				info.style.top = '10px';
-				info.style.width = '100%';
-				info.style.textAlign = 'center';
-
-				function colorize( value ) {
-
-					return value ? '<b style="color:#3f3">true</b>' : '<b style="color:#f33">false</b>';
-
-				}
-
-				function addNumLink( value ) {
-
-					return `<a href="?num=${ value }&${!multiview ? '' : 'enableMultiview'}">${ value }</a>`;
-
-				}
-
-				info.innerHTML = '<b>OVR_multiview2</b> demo<br/>requested: ' + colorize( multiview ) + ` <a href="?num=${ numObjects }&${ multiview ? '' : 'enableMultiview' }">toggle</a>`
-					+ `<br/>available: ${ colorize( renderer.multiview.isAvailable() ) }<br/>enabled: ${ colorize( renderer.multiview.isEnabled() ) }<br/>
-						${addNumLink(200)}
-						${addNumLink(500)}
-						${addNumLink(1000)}
-						${addNumLink(2500)}
-						${addNumLink(5000)}
-					<br/>`;
-				container.appendChild( info );
-				ms = document.createElement('div');
-				ms.innerHTML = '';
-				info.appendChild(ms);
-
-				document.body.appendChild( WEBVR.createButton( renderer ) );
-
-				// controllers
-
-				function onSelectStart() {
-
-					this.userData.isSelecting = true;
-
-				}
-
-				function onSelectEnd() {
-
-					this.userData.isSelecting = false;
-
-				}
-
-				controller1 = renderer.vr.getController( 0 );
-				controller1.addEventListener( 'selectstart', onSelectStart );
-				controller1.addEventListener( 'selectend', onSelectEnd );
-				scene.add( controller1 );
-
-				controller2 = renderer.vr.getController( 1 );
-				controller2.addEventListener( 'selectstart', onSelectStart );
-				controller2.addEventListener( 'selectend', onSelectEnd );
-				scene.add( controller2 );
-
-				// helpers
-
-				var geometry = new THREE.BufferGeometry();
-				geometry.addAttribute( 'position', new THREE.Float32BufferAttribute( [ 0, 0, 0, 0, 0, - 1 ], 3 ) );
-				geometry.addAttribute( 'color', new THREE.Float32BufferAttribute( [ 0.5, 0.5, 0.5, 0, 0, 0 ], 3 ) );
-
-				var material = new THREE.LineBasicMaterial( { vertexColors: true, blending: THREE.AdditiveBlending } );
-
-				controller1.add( new THREE.Line( geometry, material ) );
-				controller2.add( new THREE.Line( geometry, material ) );
-
-				//
-
-				window.addEventListener( 'resize', onWindowResize, false );
-
-			}
-
-			function onWindowResize() {
-
-				camera.aspect = window.innerWidth / window.innerHeight;
-				camera.updateProjectionMatrix();
-
-				renderer.setSize( window.innerWidth, window.innerHeight );
-
-			}
-
-			function handleController( controller ) {
-
-				if ( controller.userData.isSelecting ) {
-
-					var object = room.children[ count ++ ];
-
-					object.position.copy( controller.position );
-					object.userData.velocity.x = ( Math.random() - 0.5 ) * 3;
-					object.userData.velocity.y = ( Math.random() - 0.5 ) * 3;
-					object.userData.velocity.z = ( Math.random() - 9 );
-					object.userData.velocity.applyQuaternion( controller.quaternion );
-
-					if ( count === room.children.length ) count = 0;
-
-				}
-
-			}
-
-			//
-
-			function animate() {
-
-				renderer.setAnimationLoop( render );
-
-			}
-
-			function render() {
-
-				handleController( controller1 );
-				handleController( controller2 );
-
-				//
-
-				var delta = clock.getDelta() * 0.8; // slow down simulation
-
-				var range = 3 - radius;
-
-				for ( var i = 0; i < room.children.length; i ++ ) {
-
-					var object = room.children[ i ];
-
-					object.position.x += object.userData.velocity.x * delta;
-					object.position.y += object.userData.velocity.y * delta;
-					object.position.z += object.userData.velocity.z * delta;
-
-					// keep objects inside room
-
-					if ( object.position.x < - range || object.position.x > range ) {
-
-						object.position.x = THREE.Math.clamp( object.position.x, - range, range );
-						object.userData.velocity.x = - object.userData.velocity.x;
-
-					}
-
-					if ( object.position.y < radius || object.position.y > 6 ) {
-
-						object.position.y = Math.max( object.position.y, radius );
-
-						object.userData.velocity.x *= 0.98;
-						object.userData.velocity.y = - object.userData.velocity.y * 0.8;
-						object.userData.velocity.z *= 0.98;
-
-					}
-
-					if ( object.position.z < - range || object.position.z > range ) {
-
-						object.position.z = THREE.Math.clamp( object.position.z, - range, range );
-						object.userData.velocity.z = - object.userData.velocity.z;
-
-					}
-
-					for ( var j = i + 1; j < room.children.length; j ++ ) {
-
-						var object2 = room.children[ j ];
-
-						normal.copy( object.position ).sub( object2.position );
-
-						var distance = normal.length();
-
-						if ( distance < 2 * radius ) {
-
-							normal.multiplyScalar( 0.5 * distance - radius );
-
-							object.position.sub( normal );
-							object2.position.add( normal );
-
-							normal.normalize();
-
-							relativeVelocity.copy( object.userData.velocity ).sub( object2.userData.velocity );
-
-							normal = normal.multiplyScalar( relativeVelocity.dot( normal ) );
-
-							object.userData.velocity.sub( normal );
-							object2.userData.velocity.add( normal );
-
-						}
-
-					}
-
-					object.userData.velocity.y -= 9.8 * delta;
-
-				}
-
-				var ts = performance.now();
-				renderer.render( scene, camera );
-				var trender = performance.now() - ts;
-
-				// Compute average of the last frames
-				for ( var i = 0; i < avgCounter.length - 1; ++ i ) avgCounter[ i ] = avgCounter[ i + 1 ];
-
-				avgCounter[ avgCounter.length - 1 ] = trender;
-				var avg = avgCounter.reduce( function( a, b ) { return a + b; }) / avgCounter.length;
-
-				ms.innerHTML = `renderer.render time: ${ trender.toFixed( 2 ) }ms (avg: ${ avg.toFixed( 2 ) }ms)`;
-
-			}
-
-		</script>
-	</body>
-</html>

+ 0 - 287
examples/webvr_dragging_multiview.html

@@ -1,287 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
-		<title>three.js webvr - dragging</title>
-		<meta charset="utf-8">
-		<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
-		<style>
-			body {
-				font-family: Monospace;
-				background-color: #101010;
-				color: #fff;
-				margin: 0px;
-				overflow: hidden;
-			}
-			a {
-				color: #f00;
-			}
-		</style>
-	</head>
-	<body>
-
-		<script src="../build/three.js"></script>
-		<script src="js/vr/WebVR.js"></script>
-
-		<script>
-
-			var container;
-			var camera, scene, renderer;
-			var controller1, controller2;
-
-			var raycaster, intersected = [];
-			var tempMatrix = new THREE.Matrix4();
-
-			var group;
-
-			init();
-			animate();
-
-			function init() {
-
-				container = document.createElement( 'div' );
-				document.body.appendChild( container );
-
-				var info = document.createElement( 'div' );
-				info.style.position = 'absolute';
-				info.style.top = '10px';
-				info.style.width = '100%';
-				info.style.textAlign = 'center';
-				info.innerHTML = '<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webvr - dragging';
-				container.appendChild( info );
-
-				scene = new THREE.Scene();
-				scene.background = new THREE.Color( 0x808080 );
-
-				camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.1, 10 );
-
-				var geometry = new THREE.PlaneBufferGeometry( 4, 4 );
-				var material = new THREE.MeshStandardMaterial( {
-					color: 0xeeeeee,
-					roughness: 1.0,
-					metalness: 0.0
-				} );
-				var floor = new THREE.Mesh( geometry, material );
-				floor.rotation.x = - Math.PI / 2;
-				floor.receiveShadow = true;
-				scene.add( floor );
-
-				scene.add( new THREE.HemisphereLight( 0x808080, 0x606060 ) );
-
-				var light = new THREE.DirectionalLight( 0xffffff );
-				light.position.set( 0, 6, 0 );
-				light.castShadow = true;
-				light.shadow.camera.top = 2;
-				light.shadow.camera.bottom = - 2;
-				light.shadow.camera.right = 2;
-				light.shadow.camera.left = - 2;
-				light.shadow.mapSize.set( 4096, 4096 );
-				scene.add( light );
-
-				group = new THREE.Group();
-				scene.add( group );
-
-				var geometries = [
-					new THREE.BoxBufferGeometry( 0.2, 0.2, 0.2 ),
-					new THREE.ConeBufferGeometry( 0.2, 0.2, 64 ),
-					new THREE.CylinderBufferGeometry( 0.2, 0.2, 0.2, 64 ),
-					new THREE.IcosahedronBufferGeometry( 0.2, 3 ),
-					new THREE.TorusBufferGeometry( 0.2, 0.04, 64, 32 )
-				];
-
-				for ( var i = 0; i < 200; i ++ ) {
-
-					var geometry = geometries[ Math.floor( Math.random() * geometries.length ) ];
-					var material = new THREE.MeshStandardMaterial( {
-						color: Math.random() * 0xffffff,
-						roughness: 0.7,
-						metalness: 0.0
-					} );
-
-					var object = new THREE.Mesh( geometry, material );
-
-					object.position.x = Math.random() * 4 - 2;
-					object.position.y = Math.random() * 2;
-					object.position.z = Math.random() * 4 - 2;
-
-					object.rotation.x = Math.random() * 2 * Math.PI;
-					object.rotation.y = Math.random() * 2 * Math.PI;
-					object.rotation.z = Math.random() * 2 * Math.PI;
-
-					object.scale.setScalar( Math.random() + 0.5 );
-
-					object.castShadow = true;
-					object.receiveShadow = true;
-
-					group.add( object );
-
-				}
-
-				//
-
-        var canvas = document.createElement( 'canvas' );
-				var context = canvas.getContext( 'webgl2', { antialias: false } );
-				renderer = new THREE.WebGLRenderer( { canvas: canvas, context: context, multiview: true } );
-				renderer.setPixelRatio( window.devicePixelRatio );
-				renderer.setSize( window.innerWidth, window.innerHeight );
-				renderer.gammaInput = true;
-				renderer.gammaOutput = true;
-				renderer.shadowMap.enabled = true;
-				renderer.vr.enabled = true;
-				container.appendChild( renderer.domElement );
-
-				document.body.appendChild( WEBVR.createButton( renderer ) );
-
-				// controllers
-
-				controller1 = renderer.vr.getController( 0 );
-				controller1.addEventListener( 'selectstart', onSelectStart );
-				controller1.addEventListener( 'selectend', onSelectEnd );
-				scene.add( controller1 );
-
-				controller2 = renderer.vr.getController( 1 );
-				controller2.addEventListener( 'selectstart', onSelectStart );
-				controller2.addEventListener( 'selectend', onSelectEnd );
-				scene.add( controller2 );
-
-				//
-
-				var geometry = new THREE.BufferGeometry().setFromPoints( [ new THREE.Vector3( 0, 0, 0 ), new THREE.Vector3( 0, 0, - 1 ) ] );
-
-				var line = new THREE.Line( geometry );
-				line.name = 'line';
-				line.scale.z = 5;
-
-				controller1.add( line.clone() );
-				controller2.add( line.clone() );
-
-				raycaster = new THREE.Raycaster();
-
-				//
-
-				window.addEventListener( 'resize', onWindowResize, false );
-
-			}
-
-			function onWindowResize() {
-
-				camera.aspect = window.innerWidth / window.innerHeight;
-				camera.updateProjectionMatrix();
-
-				renderer.setSize( window.innerWidth, window.innerHeight );
-
-			}
-
-			function onSelectStart( event ) {
-
-				var controller = event.target;
-
-				var intersections = getIntersections( controller );
-
-				if ( intersections.length > 0 ) {
-
-					var intersection = intersections[ 0 ];
-
-					tempMatrix.getInverse( controller.matrixWorld );
-
-					var object = intersection.object;
-					object.matrix.premultiply( tempMatrix );
-					object.matrix.decompose( object.position, object.quaternion, object.scale );
-					object.material.emissive.b = 1;
-					controller.add( object );
-
-					controller.userData.selected = object;
-
-				}
-
-			}
-
-			function onSelectEnd( event ) {
-
-				var controller = event.target;
-
-				if ( controller.userData.selected !== undefined ) {
-
-					var object = controller.userData.selected;
-					object.matrix.premultiply( controller.matrixWorld );
-					object.matrix.decompose( object.position, object.quaternion, object.scale );
-					object.material.emissive.b = 0;
-					group.add( object );
-
-					controller.userData.selected = undefined;
-
-				}
-
-
-			}
-
-			function getIntersections( controller ) {
-
-				tempMatrix.identity().extractRotation( controller.matrixWorld );
-
-				raycaster.ray.origin.setFromMatrixPosition( controller.matrixWorld );
-				raycaster.ray.direction.set( 0, 0, - 1 ).applyMatrix4( tempMatrix );
-
-				return raycaster.intersectObjects( group.children );
-
-			}
-
-			function intersectObjects( controller ) {
-
-				// Do not highlight when already selected
-
-				if ( controller.userData.selected !== undefined ) return;
-
-				var line = controller.getObjectByName( 'line' );
-				var intersections = getIntersections( controller );
-
-				if ( intersections.length > 0 ) {
-
-					var intersection = intersections[ 0 ];
-
-					var object = intersection.object;
-					object.material.emissive.r = 1;
-					intersected.push( object );
-
-					line.scale.z = intersection.distance;
-
-				} else {
-
-					line.scale.z = 5;
-
-				}
-
-			}
-
-			function cleanIntersected() {
-
-				while ( intersected.length ) {
-
-					var object = intersected.pop();
-					object.material.emissive.r = 0;
-
-				}
-
-			}
-
-			//
-
-			function animate() {
-
-				renderer.setAnimationLoop( render );
-
-			}
-
-			function render() {
-
-				cleanIntersected();
-
-				intersectObjects( controller1 );
-				intersectObjects( controller2 );
-
-				renderer.render( scene, camera );
-
-			}
-
-		</script>
-	</body>
-</html>