2012-07-06 123 views

回答

22

我创建了具有详细注释的反射立方体(以及反射球体)的示例。现场版是在

http://stemkoski.github.com/Three.js/Reflection.html

与格式良好的代码在

https://github.com/stemkoski/stemkoski.github.com/blob/master/Three.js/Reflection.html

(这是在http://stemkoski.github.com/Three.js/的实例教程集合的一部分)

的要点是:

  • 添加到您的场景中的第二个摄像机(CubeCamera),该摄像机的表面应该是反射的
  • 创建材质并将环境贴图设置为第二个摄像机渲染的结果,例如,

例如:在你的渲染功能

var mirrorCubeMaterial = new THREE.MeshBasicMaterial( 
    { envMap: mirrorCubeCamera.renderTarget }); 
  • ,你必须从你的所有的相机来渲染。暂时隐藏正在反射的对象(使其不妨碍您将要使用的相机的方式),从该相机渲染,然后取消隐藏反射对象。

例如:

mirrorCube.visible = false; 
mirrorCubeCamera.updateCubeMap(renderer, scene); 
mirrorCube.visible = true; 

这些代码段是从I上面贴的链接;去看一下!