Three.js中的动态反射

Dynamic reflections in Three.js

本文关键字:动态 反射 js Three      更新时间:2023-09-26

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

我使用着色器和环境贴图进行了这个实验(http://jsfiddle.net/gnazoa/3hxrky6k/1/)

然后,借助Three.js网站的一个例子。我学会了如何使用立方体相机使几何图形之间的反射成为可能(http://jsfiddle.net/gnazoa/z3frkb6m/1/)

现在,问题是我找不到一种方法来同时在两个几何体之间进行反射和textureCube的反射。

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

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

或者这个:

envMap: {
  type: "t",
  value: textureCube
},

但这不起作用:

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

你有什么建议吗?感谢

不完全确定,但您不需要两个不同的环境贴图来反映场景中的多个项目吗?即,为每个想要进行单独重新选择的项目创建一个反映图。

值得注意的是,在更新反射贴图(在动画周期中)之前,必须从场景中移除将要进行反射的项目,否则它将变成一个没有重新选择的暗对象。

我想我找到了一个解决方案:https://jsfiddle.net/1aoq3n4g/

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

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