【问题标题】:Importing .json model into Three.js将 .json 模型导入 Three.js
【发布时间】:2017-03-09 05:35:00
【问题描述】:

我是 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 函数以使用上述模型? 谢谢!

【问题讨论】:

    标签: javascript json three.js


    【解决方案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的调用需要在回调中,因为加载方法是异步的,加载大型模型可能需要一些时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-29
      • 2011-12-17
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 2013-07-20
      • 1970-01-01
      相关资源
      最近更新 更多