ThreeJS GLTFLoader 从GLB模型中获取顶点、边、面和三角形

ThreeJS GLTFLoader Get Vertices, Edges, Faces And Triangles From GLB Model

对于我的模型查看器,我想显示有关模型的一些基本信息。基本上我想得到我的对象的顶点、边、面和三角形数或至少顶点数。

到目前为止,我已经尝试这样做了:

gltf.scene.traverse( function ( child ) {
    if ( child.isMesh ) {
        console.log(child.geometry.vertices)    
    }
})

然而这个 returns undefinded 因此似乎不起作用。 geometry 部分属于 BufferGeometry 类型,但我似乎找不到获取所需信息的方法。

我也试过用这个:

console.log(child.geometry.attributes.position.count)   

这确实 return 一些数字..但是我不知道这是顶点数还是其他东西。

如何获取模型的顶点数,最好还有边、面和三角形?

Which does infact return some number.. however I have no idea if this is the vertex count or something else entirely.

的确是顶点数

如果你想计算面的数量(这只是三角形的同义词),这取决于几何是否被索引。如果它有索引,你可以这样做:

const faceCount = child.geometry.index.count / 3;

否则为:

const faceCount = child.geometry.attributes.position.count / 3;

你也得自己计算边数。通常它只是面数乘以三。