如何从3d max studio导出对象以在THree.js中使用它

时间:2013-05-14 10:41:14

标签: javascript three.js webgl 3dsmax

我在加载我在3d studio max中创建的对象时遇到问题! 我像.obj一样导出它(它给我两个文件,.obj和.mtl)。我用OBJMTLLOADET()没用,我使用了MTLLOADER()和OBJLOADER(),但没有一个工作。我使用了其他对象并且它们有效,我认为问题是当我在3d max中导出对象时。

以下是我在webgl中用于加载对象的代码:

var loader = new THREE.OBJLoader();
    loader.addEventListener ('load', function(event)
    {
        objModel = event.content;
        objModel.traverse(function(child)
        {
            if (child instanceof THREE.Mesh)
            {
                child.material = new THREE.MeshBasicMaterial
                ({
                    color:0xffffff, wireframe: true
                });
            }
        }); 
        objModel.position.y -80;
        scene.add(objModel);
    });
    loader.load('asteroid.obj');

下一个代码:

 var loader = new THREE.OBJMTLLoader();
    loader.addEventListener ('load', function(event){
        objModel = event.content;
        objModel.position.x = 80;
        objModel.position.y = -80;
        objModel.position.z = 0;
        objModel.scale.y = 1;
        objModel.scale.x = 1;
        objModel.scale.z = 1;
        scene.add(objModel);
    });
    loader.load('asteroid.obj','asteroid.mtl');

当我使用其他objets时,这些代码可以很好地工作,但是当我使用我的对象时它不起作用!!有人能告诉我如何从3d max studio导出对象以在THree.js中使用它

新编辑: 以下是对象的下载链接:Download .obj file

1 个答案:

答案 0 :(得分:1)

是的问题是您的导出文件由多边形组成,而OBJMTLLoader的当前实现需要三角形。作为一种解决方法,使用我确定3dsmax具有的三角测量标志导出时创建三角形。