使用three.js加载OBJMTL对象并获取Mesh的几何参数

时间:2014-05-13 14:00:18

标签: javascript three.js geometry mesh vertices

我只是加载一个MTLOBJ,一切都很好,但是当我想获取对象的Geometry属性来获取顶点时,没有办法,因为显然它会加载一个应该有一个Mesh的Object3D。但我几乎没有想办法解决这个问题。

似乎Mrdoob建议获取解析数据,但解析函数中使用的每个参数都设置为私有..

我尝试从几何参数中获取顶点参数,这些参数应该在网格中,但是没办法,甚至可以查看文档。

2 个答案:

答案 0 :(得分:0)

您可以通过执行以下操作在层次结构中找到几何体:

object.traverse( function ( child ) {

    if ( child.geometry !== undefined ) {

        console.log( child.geometry.vertices );

    }

} );

答案 1 :(得分:0)

经过一些研究,似乎 Object3D由Meshs 组成。

在加载OBJMTL(.obj和.mtl)的情况下,名为modele的Object3D通过执行modele.children [O] 和几何体的数组顶点,可以访问 Mesh modele.children [0] .geometry.vertices。

我一直在寻找一种方法来确保我对我的模型属性的对象是带有几何参数的网格,谢谢Doob先生。

function loadModel(obj, mtl) {
    loader.load(obj, mtl, function ( object ) {
        modele = object;
        //loadingDone = true;
        analyseModel();
        //putModel();
    });
}

function analyseModel() {
    analyser = new AnalyseObj(modele.children[0]); //I give the Mesh of my model
}