我正在尝试从三个网格的quickhull创建一个几何体,但QuickHull实例似乎只有与面部相关的信息。
有没有办法从这个实例获取每个顶点信息?
先感谢您。
const hull = new QuickHull().setFromObject(mesh) //Mesh is an already rendered object
//hull.vertices //this returns the entire geometry instead of the hull's vertices
是的,这应该是可能的。试试吧:
const hull = new THREE.QuickHull().setFromObject( mesh );
const vertices = [];
const faces = quickHull.faces;
for ( let i = 0; i < faces.length; i ++ ) {
const face = faces[ i ];
let edge = face.edge;
do {
const point = edge.head().point;
vertices.push( point.x, point.y, point.z );
edge = edge.next;
} while ( edge !== face.edge );
}
如您所见,我们的想法是使用面的半边,以便按正确的顺序收集所有顶点。