将.json模型导入Three.js

时间:2016-10-26 18:06:28

标签: javascript json three.js

我是Three.js的新手,我不太了解模型加载。

我有这个函数创建一个块,另一个函数构造它。

function initThreeAgent()
{
 var shape    = new THREE.BoxGeometry( squaresize, squaresize, squaresize );             
 theagent = new THREE.Mesh( shape );
 theagent.material.color.setHex( BLANKCOLOR );  
 drawAgent();         
}

但是让我说我​​不希望这是一个盒子,我希望它是一个.json模型。我知道我必须使用这样的东西,但我不能完全把它放在一起。

var loader = new THREE.JSONLoader();
    loader.load( '/uploads/SeanHutchinson/Sporty_Man.json', function ( geometry ) {
    var mesh = new THREE.Mesh( geometry, new THREE.MeshBasicMaterial() );

如何更改initThreeAgent函数以使用上述模型? 谢谢!

1 个答案:

答案 0 :(得分:1)

如果你已经达到了上述代码,你可能已经尝试过了,但这里有一些小修正:

function initThreeAgent() {
    var loader = new THREE.JSONLoader();

    function loaded(geometry) {
        theagent = new THREE.Mesh(geometry, new THREE.MeshBasicMaterial());
        theagent.material.color.setHex(BLANKCOLOR);
        drawAgent();
    }

    loader.load('/uploads/SeanHutchinson/Sporty_Man.json', loaded);         
}

这里有一些警告,我假设你在其他地方做过:

  1. theAgent需要添加到场景中
  2. 你的回调格式不正确,所以我把它作为loaded函数分解了。如果愿意,您可以将其移回加载呼叫。
  3. drawAgent的调用需要在回调中,因为加载方法是异步的,加载大型模型可能需要一些时间。