网格仅在反射中可见

时间:2015-11-14 23:30:46

标签: javascript three.js

我正在使用cubeCamera进行实时立方体贴图反射。 如何仅在反射中显示网格。

任何人都可以指导我如何完成它,或者它是否可能完成?

  cubeCamera = new THREE.CubeCamera( 1, 600, 512 );
  cubeCamera.renderTarget.texture.minFilter = THREE.LinearMipMapLinearFilter;
  scene.add( cubeCamera );

envMap

envMap:cubeCamera.renderTarget,

基本网格

  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 );

渲染

function animate() {

  requestAnimationFrame(animate);
  renderer.render(scene, camera);

}

function render() {

  cubeCamera.updateCubeMap( renderer, scene );
  renderer.render( scene, camera );

}

function update() {

  requestAnimationFrame( update );
  render();

}

1 个答案:

答案 0 :(得分:1)

试试这个(我还没有测试过)
我假设它是你想要只在反射中可见的网格物体。

基本网格

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 );

<强>渲染

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 );
}