我如何从带有纹理的Blender中以JSON格式导出至Three.js?如果我勾选“纹理”复选框,我的JSON文件将无法在浏览器中加载。以下是勾选纹理复选框时我的材质外观:
这是我的Json加载器。
"materials": [{
"transparent": false,
"DbgIndex": 0,
"mapDiffuseRepeat": [1,1],
"mapDiffuseAnisotropy": 1,
"specularCoef": 50,
"colorEmissive": [0,0,0],
"colorDiffuse": [0.64,0.64,0.64],
"wireframe": false,
"visible": true,
"blending": "NormalBlending",
"DbgColor": 15658734,
"mapDiffuse": "w.jpg",
"DbgName": "Material.005",
"opacity": 1,
"depthWrite": true,
"mapDiffuseWrap": ["RepeatWrapping","RepeatWrapping"],
"depthTest": true,
"shading": "phong",
"colorSpecular": [0.5,0.5,0.5],
"colorAmbient": [0.64,0.64,0.64]
},...
如果我不勾选该复选框,则无法加载纹理但可以加载对象。这是我的材料。"materials": [{
"blending": "NormalBlending",
"specularCoef": 50,
"colorEmissive": [0,0,0],
"DbgName": "Material.005",
"colorDiffuse": [0.64,0.64,0.64],
"DbgIndex": 0,
"opacity": 1,
"colorSpecular": [0.5,0.5,0.5],
"shading": "phong",
"wireframe": false,
"colorAmbient": [0.64,0.64,0.64],
"depthTest": true,
"transparent": false,
"visible": true,
"depthWrite": true,
"DbgColor": 15658734
},...
这是我的Json加载器。
loader.load('oddo.js', function(geometry, materials) {
mesh = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(materials));
mesh.scale.x = x;
mesh.scale.y = y;
mesh.scale.z = z;
mesh.opacity=1;
var model = new THREE.Object3D();
model.add(mesh);
model.position.set(0,0,0);
//mesh.translation = THREE.GeometryUtils.center(geometry);
group.add(model);
});
谢谢!