three.js - 如何获取对象的顶点?

时间:2013-09-23 19:38:40

标签: three.js blender collada vertices

我正在尝试从blender导入模型并循环遍历所有顶点。我正在使用colladaloader进行导入。一切正常,模型正在加载。但我不想要模型的面孔 - 我只需要顶点位置。

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

谢谢, 托莫

4 个答案:

答案 0 :(得分:1)

如果geo代表您的几何图形:

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

}

答案 1 :(得分: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...
            }
        }
    }

    //...
} );

答案 2 :(得分:0)

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

答案 3 :(得分:0)

现在是:

       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])
        }