Browse Source

Improved peppersghost example.

Mr.doob 9 years ago
parent
commit
3a9142f8ad
1 changed files with 17 additions and 13 deletions
  1. 17 13
      examples/webgl_effects_peppersghost.html

+ 17 - 13
examples/webgl_effects_peppersghost.html

@@ -37,7 +37,7 @@
 
 <body>
 <div id="info"><a href="http://threejs.org" target="_blank">three.js</a> - <a href="https://en.wikipedia.org/wiki/Pepper%27s_ghost">peppers ghost effect</a> demo <br />
-		<a href="http://www.instructables.com/id/Reflective-Prism/?ALLSTEPS">basic instructions for building the reflective prism</a></div>
+		<a href="http://www.instructables.com/id/Reflective-Prism/?ALLSTEPS" target="_blank">basic instructions for building the reflective prism</a></div>
 
 <script src="../build/three.min.js"></script>
 
@@ -52,10 +52,7 @@
 		var container;
 
 		var camera, scene, renderer, effect;
-		var cube;
-
-		var windowHalfX = window.innerWidth / 2;
-		var windowHalfY = window.innerHeight / 2;
+		var group;
 
 		init();
 		animate();
@@ -69,6 +66,9 @@
 
 				scene = new THREE.Scene();
 
+				group = new THREE.Group();
+				scene.add( group );
+
 				// Cube
 
 				var geometry = new THREE.BoxGeometry( 1, 1, 1 );
@@ -83,13 +83,19 @@
 
 				var material = new THREE.MeshBasicMaterial( { vertexColors: THREE.FaceColors, overdraw: 0.5 } );
 
-				cube = new THREE.Mesh( geometry, material );
-				cube.position.y = 1;
-				scene.add( cube );
+				for ( var i = 0; i < 10; i ++ ) {
+
+					var cube = new THREE.Mesh( geometry, material );
+					cube.position.x = Math.random() * 2 - 1;
+					cube.position.y = Math.random() * 2 - 1;
+					cube.position.z = Math.random() * 2 - 1;
+					cube.scale.multiplyScalar( Math.random() + 0.5 );
+					group.add( cube );
+
+				}
 
 				renderer = new THREE.WebGLRenderer();
 				renderer.setPixelRatio( window.devicePixelRatio );
-
 				container.appendChild( renderer.domElement );
 
 				effect = new THREE.PeppersGhostEffect( renderer );
@@ -102,9 +108,7 @@
 
 		function onWindowResize() {
 
-				windowHalfX = window.innerWidth / 2,
-								windowHalfY = window.innerHeight / 2,
-								camera.aspect = window.innerWidth / window.innerHeight;
+				camera.aspect = window.innerWidth / window.innerHeight;
 				camera.updateProjectionMatrix();
 
 				effect.setSize( window.innerWidth, window.innerHeight );
@@ -123,7 +127,7 @@
 
 				camera.lookAt( scene.position );
 
-				cube.rotation.y += 0.01;
+				group.rotation.y += 0.01;
 
 				effect.render( scene, camera );