Browse Source

Added mirror to webvr_shadow example.

Mr.doob 8 years ago
parent
commit
277b28f059
1 changed files with 25 additions and 4 deletions
  1. 25 4
      examples/webvr_shadow.html

+ 25 - 4
examples/webvr_shadow.html

@@ -19,6 +19,8 @@
 		<script src="js/effects/VREffect.js"></script>
 		<script src="js/vr/WebVR.js"></script>
 
+		<script src="js/Mirror.js"></script>
+
 		<script>
 
 			if ( WEBVR.isAvailable() === false ) {
@@ -32,6 +34,8 @@
 			var camera, scene, renderer;
 			var effect, controls;
 
+			var mirror;
+
 			init();
 			animate();
 
@@ -40,8 +44,8 @@
 				scene = new THREE.Scene();
 
 				var dummy = new THREE.Camera();
-				dummy.position.set( 2, 1, 2 );
-				dummy.lookAt( scene.position );
+				dummy.position.set( 0, 0.5, 3 );
+				dummy.lookAt( new THREE.Vector3( 0, 0.5, 0 ) );
 				scene.add( dummy );
 
 				camera = new THREE.PerspectiveCamera( 50, window.innerWidth / window.innerHeight, 0.1, 10 );
@@ -55,10 +59,10 @@
 				mesh.receiveShadow = true;
 				scene.add( mesh );
 
-				var geometry = new THREE.BoxGeometry( 3, 0.1, 3 );
+				var geometry = new THREE.BoxGeometry( 1.5, 0.1, 1.5 );
 				var material = new THREE.MeshStandardMaterial( { roughness: 1.0, metalness: 0.0 } );
 				var mesh = new THREE.Mesh( geometry, material );
-				mesh.position.y = - 0.1;
+				mesh.position.y = - 0.2;
 				mesh.castShadow = true;
 				mesh.receiveShadow = true;
 				scene.add( mesh );
@@ -77,6 +81,23 @@
 
 				//
 
+				mirror = new THREE.Mirror( 1.4, 1.4, { textureWidth: window.innerWidth, textureHeight: window.innerHeight } );
+				mirror.position.x = 1;
+				mirror.position.y = 0.5;
+				mirror.position.z = -1;
+				mirror.rotation.y = - Math.PI / 4;
+				scene.add( mirror );
+
+				var geometry = new THREE.BoxGeometry( 1.5, 1.5, 0.1 );
+				var material = new THREE.MeshStandardMaterial( { roughness: 1.0, metalness: 0.0 } );
+				var mesh = new THREE.Mesh( geometry, material );
+				mesh.position.z = - 0.07;
+				mesh.castShadow = true;
+				mesh.receiveShadow = true;
+				mirror.add( mesh );
+
+				//
+
 				renderer = new THREE.WebGLRenderer( { antialias: true } );
 				renderer.setClearColor( 0x101010 );
 				renderer.setPixelRatio( window.devicePixelRatio );