1

我实际上正在努力在 three.js 上实现一些遮挡剔除,我想知道是否有办法从 THREE.Box3 中检索此边界框内的所有相应网格?
three.js 中的边界框是否跟踪它包含的网格?
谢谢你们 。

4

1 回答 1

2

以相反的顺序回答您的问题:

不,aBox3没有“环境感”如果要保留 aBox3包含的网格列表,则需要在创建 时构建该列表Box3,并将其作为场景进行维护并进行Box3更改。

但是,您可以通过检查边界框相交来获取所有这些网格。一个主要的警告是,这些盒子必须被翻译成它们的世界变换。这会使相交的准确性降低,因为边界框将扩展以包含变换后的部分,同时保持世界对齐。

myMesh.geometry.computeBoundingBox(); // computes a LOCAL bounding box
var tmpBox = new THREE.Box3().copy(myMesh.boundingBox);
tmpBox.applyMatrix4(myMesh.matrixWorld); // converts tmpBox into a WORLD bounding box
console.log("Boxes intersect:", someOtherWorldBox.intersectsBox(tmpBox)); // true/false
于 2017-08-06T18:39:54.190 回答