如何在三个js中检索边界框的网格?

时间:2017-08-05 18:50:16

标签: three.js bounding-box occlusion-culling

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

1 个答案:

答案 0 :(得分:2)

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

不,Box3没有“环境感”如果要保留Box3包含的网格列表,则需要在创建{{Box3时构建该列表1}},并将其保留为您的场景并Box3更改。

但是,您可以通过检查bounding box intersections获取所有这些网格。一个主要的警告是,盒子必须翻译成他们的世界变换。这可能会使交叉点不准确,因为边界框将会扩展以包含转换后的部分,同时保持世界对齐。

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