Javascript 如何在three.js中使用反射?

Javascript 如何在three.js中使用反射?,javascript,webgl,three.js,Javascript,Webgl,Three.js,我想在带有三个.js的WebGL页面中有一个反射立方体曲面。它应该像一个手机显示屏,反射一些光线,但它仍然必须是黑色的。我创建了一个反射立方体(以及反射球体)的示例,并给出了详细的注释。现场版本在 在 (这是位于的教程示例集合的一部分) 要点是: 将第二个摄影机(立方体摄影机)添加到场景中,该摄影机位于表面应为反射的对象处 创建材质并将环境贴图设置为第二个摄影机的渲染结果,例如 例如: var mirrorCubeMaterial = new THREE.MeshBasicMateri

我想在带有三个.js的WebGL页面中有一个反射立方体曲面。它应该像一个手机显示屏,反射一些光线,但它仍然必须是黑色的。

我创建了一个反射立方体(以及反射球体)的示例,并给出了详细的注释。现场版本在

(这是位于的教程示例集合的一部分)

要点是:

  • 将第二个摄影机(立方体摄影机)添加到场景中,该摄影机位于表面应为反射的对象处
  • 创建材质并将环境贴图设置为第二个摄影机的渲染结果,例如
例如:

 var mirrorCubeMaterial = new THREE.MeshBasicMaterial( 
    { envMap: mirrorCubeCamera.renderTarget } );
mirrorCube.visible = false;
mirrorCubeCamera.updateCubeMap( renderer, scene );
mirrorCube.visible = true;
  • 在渲染函数中,必须从所有摄影机进行渲染。暂时隐藏正在反射的对象(以便它不会妨碍要使用的摄影机),从该摄影机渲染,然后取消隐藏反射对象
例如:

 var mirrorCubeMaterial = new THREE.MeshBasicMaterial( 
    { envMap: mirrorCubeCamera.renderTarget } );
mirrorCube.visible = false;
mirrorCubeCamera.updateCubeMap( renderer, scene );
mirrorCube.visible = true;
这些代码片段来自我上面发布的链接;看看他们