我正在尝试从blender导入模型并循环遍历所有顶点。我正在使用colladaloader进行导入。一切正常,模型正在加载。但我不想要模型的面孔 - 我只需要顶点位置。
有人能告诉我是否有办法做到这一点?例如循环遍历导入模型的所有顶点?
谢谢, 托莫
答案 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])
}