我有一个带有许多子级(更多Object3D或Meshes / Lines)的Object3DBox3类具有setFromObject()方法,该方法将计算对象及其所有后代的边界框。这是我正在寻找的行为。

我不能使用setFromObject()Box3方法,因为我没有使用Geometry对象。相反,我正在处理的项目仅使用BufferGeometryBufferGeometry对象没有.vertices属性,这是setFromObject()函数在计算边界框时要查找的内容。

var bbox = new THREE.Box3().setFromObject(object);
console.log(bbox.min); // x, y, and z are all Infinity.
console.log(bbox.max); // x, y, and z are all -Infinity.


我也一直在尝试使用computeBoundingBox()BufferGeometry方法,但是当操纵几何图形时,它似乎没有更新边界框。我认为这可能与matrixAutoUpdatefalse有关,但是我也尝试显式调用updateMatrix()无济于事。

如果使用Object3D类,是否可以计算BufferGeometry及其所有后代的边界框?我是Three.js的新手,所以我们将不胜感激!

我正在使用Three.js r66。

最佳答案

Box3.setFromObject( object )现在支持BufferGeometry

three.js r.69dev(开发版)

10-07 21:10