Three.js将加载的glb模型的网格几何体转换为其边界框具有相同的中心

时间:2019-08-22 07:14:36

标签: three.js

Three.js:已加载的glb模型的中心与边界框中心不同。如何将其所有的网格几何体转换为其边界框具有相同的中心?

为了间隙:当我设置边界框的位置=模型的位置时。边界框将不再覆盖模型(下图)。

因为我将使用边界框创建佳能刚体,所以模型的位置将被刚体更新。因此,我需要转换模型中的网格位置以使center =边界框中心。

图中:3个模型,3个边界框和3个boxHelper(红色)。

bounding box illustration

1 个答案:

答案 0 :(得分:1)

边界框计算正确。问题是您的blockBounding网格没有放置在正确的位置。

您必须将blockBounding置于边界框的中心点(而不是模型的位置)。此外,也不必对blockBounding进行旋转。 Box3的一个实例是轴对齐的边界框(AABB)。因此,完全可以做到这一点:

blockBounding.position.copy( center ); // "center" is the center point of the model's AABB

结果如下:

enter image description here

three.js R107