我有一个 Object3D
,其中包含许多级别的子级(更多 Object3D 或网格/线)。 Box3
类有一个 setFromObject()
方法,该方法将计算对象及其所有后代的边界框。这就是我正在寻找的行为。
但是,我无法使用 Box3
的 setFromObject()
方法,因为我没有使用 Geometry
对象。相反,我正在从事的项目专门使用 BufferGeometry。 BufferGeometry
对象没有 .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.
我也一直在尝试使用 BufferGeometry
的 computeBoundingBox()
方法,但在操作几何图形时它似乎没有更新边界框。我认为这可能与 matrixAutoUpdate
为 false
有关,但我也尝试显式调用 updateMatrix()
但无济于事。
如果使用 BufferGeometry
类,是否有方法计算 Object3D
及其所有后代的边界框?我是 Three.js 的新手,因此我们将不胜感激!
我使用的是 Three.js r66。
最佳答案
Box3.setFromObject( object )
现在支持 BufferGeometry
。
三.js r.69dev(开发版本)
关于JavaScript - Three.js 使用 BufferGeometry 计算 Object3D 的边界框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25252499/