巴比伦Js的孩子跟着父母没有缩放

时间:2018-01-26 09:09:22

标签: babylonjs

我使用Babylon JS,我想要一些网格跟随位移而不是'父网格'的缩放

有一种简单的方法吗?或者我必须手工完成这个?

感谢。

2 个答案:

答案 0 :(得分:0)

也许最好的方法是不继承,而是使用scene.registerBeforeRender并将父位置克隆到子位置

答案 1 :(得分:0)

这是一个较晚的答案,但是我解决此问题的方法是将孩子的缩放比例设置为父级的倒数。

        childMesh.parent = parentMesh;

        ...

        parentMesh.computeWorldMatrix(true);
        childMesh.scaling = Vector3.One().divide(parentMesh.absoluteScaling);

如果要使用computeWorldMatrix,则父级上的parentMesh.absoluteScaling很重要-它会强制父级在渲染之前计算其世界矩阵,以便您可以准确了解其绝对比例或位置。

如果您只想撤销父级的缩放比例,但仍希望尊重祖父母的缩放比例,则可以用parentMesh.scaling代替absoluteScaling

我不确定这是否是一个好习惯,但是对我来说效果很好。