我正在努力解决类似的问题,虽然我无法直接将其加载到JSON中,但这里的解决方法是在导入期间为所有网格分配它。然后,根据材质反射率,您将在材质上看到它,或者不看到:
var objectLoader = new THREE.ObjectLoader();
objectLoader.load( "file.json" , function ( obj ) {
obj.traverse( function ( child ) {
if ( child instanceof THREE.Mesh ) {
child.material.envMap = mapEnvironment;
}
});
这会保留JSON中的材质属性,只需将此属性添加到顶部。
编辑:以下是JSONLoader的版本:
var loader = new THREE.JSONLoader();
loader.load( 'file.json', function ( geometry, materials ) {
for ( var k in materials ) {
materials[k].envMap = mapEnvironment;
}
mesh = new THREE.Mesh(geometry, new THREE.MultiMaterial(materials));
scene.add( mesh );
});