Reflector Lighting Bug
HTML
<script src="https://rawgit.com/mrdoob/three.js/r88/build/three.js"></script>
<script src="https://rawgit.com/mrdoob/three.js/r88/examples/js/controls/OrbitControls.js"></script>
<script src="https://rawgit.com/mrdoob/three.js/r88/examples/js/objects/Reflector.js"></script>
JavaScript
var camera, scene, renderer, controls;
init();
render();
function init() {
scene = new THREE.Scene();
var aspectRatio = window.innerWidth / window.innerHeight;
camera = new THREE.PerspectiveCamera(75, aspectRatio, 1, 1000);
camera.position.set(-3, 3, -3);
scene.add(camera);
controls = new THREE.OrbitControls(camera);
var mirror = new THREE.Reflector(1, 1);
mirror.receiveShadow = true;
mirror.castShadow = true;
mirror.position.z = -1;
mirror.rotation.y = Math.PI;
renderer = new THREE.WebGLRenderer({ antialias: true });
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.shadowMap.enabled = true;
// --------------------------------------------------------
scene.add(mirror);
renderer.render(scene, camera);
createMirrorTest();
mirror.material.needsUpdate = true;
// --------------------------------------------------------
document.body.appendChild(renderer.domElement);
}
function createMirrorTest()
{
var light = new THREE.PointLight(0xF0F0F0, 1, 100000);
light.position.set(1, 1, 1);
light.castShadow = true;
scene.add(light);
var wallGeometry = new THREE.PlaneGeometry(6, 3);
var floorGeometry = new THREE.BoxGeometry(6, 0.1, 6);
var material1 = new THREE.MeshStandardMaterial({ color: 0xFFFF00 });
var material2 = new THREE.MeshStandardMaterial({ color: 0x00FFFF });
var material3 = new THREE.MeshStandardMaterial({ color: 0xFF00FF });
var material4 = new THREE.MeshStandardMaterial({ color: 0xFFFFFF });
var wall1 = new THREE.Mesh(wallGeometry, material1);
wall1.receiveShadow = true;
wall1.castShadow = true;
wall1.position.z = -3;
wall1.position.y = 1;
scene.add(wall1);
var wall2 = new THREE.Mesh(wallGeometry, material2);
wall2.receiveShadow = true;
wall2.castShadow = true;
wall2.rotation.y = -Math.PI / 2;
wall2.position.x = 3;
wall2.position.y = 1;
scene.add(wall2);
var wall3 = new THREE.Mesh(wallGeometry, material3);
wall3.receiveShadow = true;
...