Three.js:加载要查看的JSON文件

时间:2013-05-23 20:41:54

标签: javascript json three.js webgl blender

我有一个关于将来自Blender的3dModel放到Three.js页面的问题。 我在搅拌机中创建了一个3D人体模型。我可以使用2.66 three.js-export插件为blender导出它。

当我使用导出的.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 Loader作为因果:

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中加载,我认为没问题。我想我需要改变一些代码。我觉得这是一个不准确的问题,我想为此道歉。但此刻我真的被卡住了。有什么建议? =)非常感谢你。

1 个答案:

答案 0 :(得分:0)

使用文本编辑器打开knight.js和您的exported.js文件,你会发现差异, 我认为这仍然是作者的实验技术。