0

我正在尝试从搅拌机导入模型并遍历所有顶点。我正在使用 colladaloader 进行导入。一切正常,模型正在加载。但我不想要模型的面——我只需要顶点位置来达到我的目的。

谁能告诉我是否有办法做到这一点?例如,一个循环遍历导入模型的所有顶点?

谢谢,托莫

4

4 回答 4

1

好的,现在我明白了...

console.log() 帮助我了解加载的 .dae 文件背后的结构。

loader.load( './models/collada/test.dae', function ( collada ) {                
    for(i = 0; i < collada.scene.children.length; i++) {
        if(collada.scene.children[i].geometry) {
            for(j = 0; j < collada.scene.children[i].geometry.vertices.length; j++) {
                //do stuff...
            }
        }
    }

    //...
} );
于 2013-09-24T15:09:54.607 回答
1

如果geo代表您的几何:

for (var i = 0; i < geo.vertices.length; i++)
{
    var v = geo.vertices[i];
    // do stuff with v...

}
于 2013-09-24T14:09:33.090 回答
1

好吧,您使用加载器模块将 Blender 模型导入为网格。网格具有它所基于的几何形状。并且几何有一个顶点数组。只是重复一遍?如果您不想显示模型,也许只是不将其添加到场景中?乍一看,您的问题似乎没有得到很好的研究。查看 Mesh 对象结构并查看 Three.js 示例!

于 2013-09-24T13:37:36.790 回答
1

现在它是:

       var vertices = mesh.geometry.attributes.position.array;
      

        for (let i = 0; i < vertices.length; i=i+3) {
            //a vertex' position is (vertices[i],vertices[i+1],vertices[i+2])
        }
于 2021-03-21T20:29:24.230 回答