【发布时间】:2023-03-26 05:20:01
【问题描述】:
我有一个Object3D,其中包含多个级别的子级(更多 Object3D 或网格/线)。 Box3 类有一个 setFromObject() 方法,它将计算对象及其所有后代的边界框。这是我正在寻找的行为。
但是,我不能使用Box3 的setFromObject() 方法,因为我没有使用Geometry 对象。相反,我正在处理的项目只使用BufferGeometry。 BufferGeometry 对象没有 .vertices 属性,这是 setFromObject() 函数在计算边界框时寻找的。p>
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。
【问题讨论】:
标签: javascript three.js