我正在使用JavaScript编写第一步并使用Three.js进行编码
我使用着色器和环境贴图(http://jsfiddle.net/gnazoa/3hxrky6k/1/)
进行了此实验然后,借助Three.js网站的示例。我学会了如何使用cubeCamera(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
},
你有一些推荐吗?谢谢
答案 0 :(得分:0)
不完全确定,但是你不需要两个不同的env地图来反映场景中的多个项目吗?即为每个想要单独选择的项目创建一个反射贴图。
值得注意的是,在更新反射贴图之前(在动画循环期间)必须从场景中移除要对其进行反射的项目,否则它最终会成为没有反射的暗物体。
答案 1 :(得分:0)
我认为我找到了一个解决方案:https://jsfiddle.net/1aoq3n4g/
我用反射透明层重复每个几何体。像这样:
material = new THREE.MeshBasicMaterial( { envMap: textureCube, color: 0xffffff, transparent: true, opacity: 0.2, blending: THREE.AdditiveBlending} );