Javascript Three.js中的动态反射

Javascript Three.js中的动态反射,javascript,three.js,Javascript,Three.js,我正在使用JavaScript编写代码并使用Three.js进行第一步 我使用着色器和环境贴图() 然后,借助于Three.js站点的一个示例。我学会了如何使用立方体() 现在的问题是,我找不到一种方法使两个几何体之间的反射和纹理的反射同时发生 我知道,当我定义我的制服时,我可以这样写: envMap: { type: "t", value: cubeCamera.renderTarget }, 或者这个: envMap: { type: "t", value: texture

我正在使用JavaScript编写代码并使用Three.js进行第一步

我使用着色器和环境贴图()

然后,借助于Three.js站点的一个示例。我学会了如何使用立方体()

现在的问题是,我找不到一种方法使两个几何体之间的反射和纹理的反射同时发生

我知道,当我定义我的制服时,我可以这样写:

envMap: {
  type: "t",
  value: cubeCamera.renderTarget
},
或者这个:

envMap: {
  type: "t",
  value: textureCube
},
但这不起作用:

envMap: {
  type: "t",
  value: textureCube, cubeCamera.renderTarget
},

你有什么建议吗?谢谢

不太确定,但是您不需要两个不同的环境贴图来反映场景中的多个项目吗?i、 e.为每个要单独选择的项目创建反射贴图


值得注意的是,在更新反射贴图(在动画循环期间)之前,您必须从场景中删除将在其上产生反射的项目,否则它最终将成为一个黑暗的对象,并且没有参照选择。

我想我找到了一个解决方案:

我用反射透明层重复每个几何体。像这样:

material = new THREE.MeshBasicMaterial( { envMap: textureCube, color: 0xffffff, transparent: true, opacity: 0.2, blending: THREE.AdditiveBlending} );

谢谢@user1236373这是一个很好的解决方案,但我不希望在每个项目中都有不同的反射。我正在尝试在每个项目中同时有两个反射(textureCube和cubeCamera.renderTarget)。换句话说,我正在寻找类似这样的东西()但没有背景图像。只有三个几何体,图像的反射和几何体之间的反射。