我有一个关于将 3dModel 从 Blender 放到 Three.js 页面的问题。我在搅拌机中创建了一个 3D 人体模型。我可以使用 Blender 的 2.66 three.js-export 插件导出它。
当我使用导出的 .js 文件并将其加载到http://blackjk3.github.io/threefab/时,它似乎工作正常。
我使用了http://mrdoob.github.io/three.js/examples/webgl_animation_skinning_morph.html示例并尝试将我自己的模型放入其中。而且我无法显示它。
Firebug 只是告诉我类似:“TypeError: a.hierarchy is undefined”,看来我真的找不到问题所在。
我像往常一样使用 JSON 加载器:
var loader = new THREE.JSONLoader();
loader.load( "models/skinned/humanPrototype.js", function ( geometry, materials ) { createScene( geometry, materials, 0, FLOOR, -300, 60 ) } );
createScene 看起来像这样:
function createScene( geometry, materials, x, y, z, s ) {
geometry.computeBoundingBox();
var bb = geometry.boundingBox;
THREE.AnimationHandler.add( geometry.animation );
for ( var i = 0; i < materials.length; i ++ ) {
var m = materials[ i ];
m.skinning = true;
m.morphTargets = true;
m.color.setHSL( 0.6, 0.5, 0.6 );
m.ambient.copy( m.color );
m.wrapAround = true;
}
mesh = new THREE.SkinnedMesh( geometry, new THREE.MeshFaceMaterial( materials ) );
mesh.position.set( 0,0,0 );
mesh.scale.set( s, s, s );
scene.add( mesh );
mesh.castShadow = true;
mesh.receiveShadow = true;
animation = new THREE.Animation( mesh, geometry.animation.name );
animation.JITCompile = false;
animation.interpolationType = THREE.AnimationHandler.LINEAR;
//animation.play();
}
由于我的模型可以在 threefab 中加载,我认为还可以。我想我需要改变一些关于代码的东西。我觉得这是一个不准确的问题,我想为此道歉。但此刻我真的被困住了。有什么建议么?=) 非常感谢。