【发布时间】:2014-12-28 23:43:54
【问题描述】:
使用 Three.js 插件从 Blender 中以 json 格式导出模型。使用 JSONLoader 加载它,标准的东西:
var loader = new THREE.JSONLoader();
loader.load(path, function (geometry, materials) {
materials.forEach(function (material) {
material.skinning = true;
});
var material = new THREE.MeshFaceMaterial(materials);
var mesh = new THREE.SkinnedMesh(geometry, material);
现在问题表现为模型根本没有显示。如果我改变材料:
var loader = new THREE.JSONLoader();
loader.load(path, function (geometry, materials) {
materials.forEach(function (material) {
material.skinning = true;
});
var material = new THREE.MeshLambertMaterial();
var mesh = new THREE.SkinnedMesh(geometry, material);
一切正常,网格按预期显示。
这是 JSON 文件的内容,省略了 uvs、顶点、面和法线:
{
"metadata": {
"formatVersion" : 3.1,
"generatedBy" : "Blender 2.7 Exporter",
"vertices" : 774,
"faces" : 691,
"normals" : 751,
"colors" : 0,
"uvs" : [404],
"materials" : 2,
"morphTargets" : 0,
"bones" : 0
},
"scale" : 1.000000,
"vertices" : ...,
"faces" : ...,
"uvs" : ...,
"normals" : ...,
"skinIndices" : [],
"skinWeights" : [],
"morphTargets" : [],
"bones" : [],
"animations" : [],
"colors" : [],
"materials" : [
{
"DbgColor": 15658734,
"DbgIndex": 0,
"DbgName": "Crystal",
"blending": "NormalBlending",
"colorAmbient": [0.800000011920929, 0.800000011920929, 0.800000011920929],
"colorDiffuse": [0.800000011920929, 0.800000011920929, 0.800000011920929],
"colorEmissive": [0.0, 0.0, 0.0],
"colorSpecular": [0.25, 0.25, 0.25],
"depthTest": true,
"depthWrite": true,
"mapDiffuse": "Cristal_C_CM.png",
"mapDiffuseWrap": ["repeat", "repeat"],
"shading": "Lambert",
"specularCoef": 33,
"transparency": 1.0,
"transparent": false,
"vertexColors": false
},
{
"DbgColor": 15597568,
"DbgIndex": 1,
"DbgName": "tower",
"blending": "NormalBlending",
"colorAmbient": [0.800000011920929, 0.800000011920929, 0.800000011920929],
"colorDiffuse": [0.800000011920929, 0.800000011920929, 0.800000011920929],
"colorEmissive": [0.0, 0.0, 0.0],
"colorSpecular": [0.4180000126361847, 0.31944116950035095, 0.1504800170660019],
"depthTest": true,
"depthWrite": true,
"mapDiffuse": "rock_CM_01.png",
"mapDiffuseWrap": ["repeat", "repeat"],
"mapNormal": "rock_NM_02.png",
"mapNormalFactor": 0.3500420153141022,
"mapNormalWrap": ["repeat", "repeat"],
"shading": "Phong",
"specularCoef": 511,
"transparency": 1.0,
"transparent": false,
"vertexColors": false
}
]
}
任何想法将不胜感激。
【问题讨论】:
标签: json three.js model blender