问题描述
所以我在这里看到了一条旧帖子:
这表示...“如果将env贴图应用于Scene.environment,它将自动用作场景中所有物理材质的环境贴图(假定未设置材质的env贴图)。”
因此,在场景中使用Aframe组件对此进行了尝试:
AFRAME.registerComponent('setenvironment',{
init: function () {
var sceneEl = this.el;
var loader = new THREE.CubeTextureLoader();
loader.setPath('./');
var textureCube = loader.load([
'./images/py.png','./images/pz.png','./images/nx.png','./images/ny.png','./images/px.png','./images/nz.png'
]);
textureCube.encoding = THREE.sRGBEncoding;
sceneEl.object3D.environment = textureCube;
}
});
已成功设置环境属性,但其他对象材质仍将envMap设置为null,并且环境照明对材质不起作用。
有什么想法吗?
解决方法
aframe 1.0.4使用three.js版本111dev。场景的environment
属性是在修订版112(source)中引入的。
如果使用无框架master构建-好像是working properly(基于基于three.js r119的构建)。
否则,您将不得不遍历网格,并手动设置material.envMap
属性。