我正在尝试从搅拌机导入模型并遍历所有顶点。我正在使用 colladaloader 进行导入。一切正常,模型正在加载。但我不想要模型的面——我只需要顶点位置来达到我的目的。
谁能告诉我是否有办法做到这一点?例如,一个循环遍历导入模型的所有顶点?
谢谢,托莫
好的,现在我明白了...
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...
}
}
}
//...
} );
如果geo
代表您的几何:
for (var i = 0; i < geo.vertices.length; i++)
{
var v = geo.vertices[i];
// do stuff with v...
}
好吧,您使用加载器模块将 Blender 模型导入为网格。网格具有它所基于的几何形状。并且几何有一个顶点数组。只是重复一遍?如果您不想显示模型,也许只是不将其添加到场景中?乍一看,您的问题似乎没有得到很好的研究。查看 Mesh 对象结构并查看 Three.js 示例!
现在它是:
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])
}