禁用某些分组的object3D的边界框计算

时间:2019-02-27 16:35:33

标签: three.js

我将几个对象分组在一个Object3D中。我想计算整个组的边界框,但该组中的某些特定对象除外。

可以禁用这些对象的边界框计算吗?

2 个答案:

答案 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); } } }); 的布尔逻辑,以确定是否希望将对象包含在边界计算中。

希望有帮助!