我有一个带有许多子级(更多Object3D或Meshes / Lines)的Object3D
。 Box3
类具有setFromObject()
方法,该方法将计算对象及其所有后代的边界框。这是我正在寻找的行为。
我不能使用setFromObject()
的Box3
方法,因为我没有使用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.
我也一直在尝试使用
computeBoundingBox()
的BufferGeometry
方法,但是当操纵几何图形时,它似乎没有更新边界框。我认为这可能与matrixAutoUpdate
被false
有关,但是我也尝试显式调用updateMatrix()
无济于事。如果使用
Object3D
类,是否可以计算BufferGeometry
及其所有后代的边界框?我是Three.js的新手,所以我们将不胜感激!我正在使用Three.js r66。
最佳答案
Box3.setFromObject( object )
现在支持BufferGeometry
。
three.js r.69dev(开发版)