2012-07-06 169 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上面貼的鏈接;去看一下!