标签: three.js
Three.js:已加载的glb模型的中心与边界框中心不同。如何将其所有的网格几何体转换为其边界框具有相同的中心?
为了间隙:当我设置边界框的位置=模型的位置时。边界框将不再覆盖模型(下图)。
因为我将使用边界框创建佳能刚体,所以模型的位置将被刚体更新。因此,我需要转换模型中的网格位置以使center =边界框中心。
图中:3个模型,3个边界框和3个boxHelper(红色)。
答案 0 :(得分:1)
边界框计算正确。问题是您的blockBounding网格没有放置在正确的位置。
blockBounding
您必须将blockBounding置于边界框的中心点(而不是模型的位置)。此外,也不必对blockBounding进行旋转。 Box3的一个实例是轴对齐的边界框(AABB)。因此,完全可以做到这一点:
Box3
blockBounding.position.copy( center ); // "center" is the center point of the model's AABB
结果如下:
three.js R107