Reputation: 990
I'm using a cubeCamera for live cube maps reflections. How do I show a mesh only in the reflection.
Can anyone guide me how to accomplish it, or is it possible at all ?
cubeCamera = new THREE.CubeCamera( 1, 600, 512 );
cubeCamera.renderTarget.texture.minFilter = THREE.LinearMipMapLinearFilter;
scene.add( cubeCamera );
envMap
envMap: cubeCamera.renderTarget,
Basic mesh
var geometry = new THREE.PlaneBufferGeometry( 1, 1 );
var material = new THREE.MeshBasicMaterial({color: 0xffffff });
var mesh = new THREE.Mesh( geometry, material);
mesh.position.set( 0, 0, 0 );
scene.add( mesh );
Render
function animate() {
requestAnimationFrame(animate);
renderer.render(scene, camera);
}
function render() {
cubeCamera.updateCubeMap( renderer, scene );
renderer.render( scene, camera );
}
function update() {
requestAnimationFrame( update );
render();
}
Upvotes: 0
Views: 223
Reputation: 10165
Try this (I have not tested it)
I am assuming it is the mesh object that you want only visible in the reflections.
Basic mesh
var geometry = new THREE.PlaneBufferGeometry( 1, 1 );
var material = new THREE.MeshBasicMaterial({color: 0xffffff });
var mesh = new THREE.Mesh( geometry, material);
mesh.position.set( 0, 0, 0 );
// make your mesh invisible.
mesh.visible = false;
scene.add( mesh );
Render
function render() {
// Make mesh visible to the cubeCamera.
mesh.visible = true;
cubeCamera.updateCubeMap( renderer, scene );
// Make mesh invisible again.
mesh.visible = false;
renderer.render( scene, camera );
}
Upvotes: 1