我将几个对象分组在一个Object3D中。我想计算整个组的边界框,但该组中的某些特定对象除外。
可以禁用这些对象的边界框计算吗?
答案 0 :(得分:2)
可以禁用这些对象的边界框计算吗?
如果您使用Box3.setFromObject()
,则不能,这是不可能的。该代码处理该层次结构的所有子级,并在对象具有geometry属性时扩展AABB。
three.js R101
答案 1 :(得分:1)
正如Mugen所说,不可能做到这一点,但是您可以通过手动遍历树来实现。
这是您可能如何做的一个主意。
application/json
您可以更改var box = null;
group.traverse(c => {
// logic for whether or not to include the child
var includeChild = c.isMesh;
if (includeChild) {
// initialize the box to the first valid child found
// otherwise expand the bounds
if (box === null) {
box = new THREE.Box3();
box.setFromObject(c);
} else {
box.expandByObject(c);
}
}
});
的布尔逻辑,以确定是否希望将对象包含在边界计算中。
希望有帮助!