Java 阿科雷–;WorldScale和LocalScale的区别是什么?

Java 阿科雷–;WorldScale和LocalScale的区别是什么?,java,android,kotlin,augmented-reality,arcore,Java,Android,Kotlin,Augmented Reality,Arcore,我正在尝试调整AR模型的大小,我正在使用建筑物大小的模型 我使用worldscale和localscale成功地调整了模型的大小,但到底有什么区别?我应该在什么时候使用worldscale来放大模型,什么时候使用localscale?局部缩放单个对象 在局部空间中,模型上的所有操作(平移、旋转和缩放)都是相对于模型的轴心点执行的 Google ARCore开发者官方文档: 设置此节点相对于其父节点(局部空间)的比例。如果isTopLevel()为真,则这与setWorldScale(Vecto

我正在尝试调整AR模型的大小,我正在使用建筑物大小的模型

我使用worldscale和localscale成功地调整了模型的大小,但到底有什么区别?我应该在什么时候使用worldscale来放大模型,什么时候使用localscale?

局部缩放单个对象 在局部空间中,模型上的所有操作(平移、旋转和缩放)都是相对于模型的轴心点执行的


Google ARCore开发者官方文档:

设置此节点相对于其父节点(局部空间)的比例。如果
isTopLevel()
为真,则这与
setWorldScale(Vector3)
相同

下面是它在实际代码中的样子:

Anchor anchor = hitResult.createAnchor();
AnchorNode anchorNode = new AnchorNode(anchor);
anchorNode.setParent(arFragment.getArSceneView().getScene());

TransformableNode n = new TransformableNode(arFragment.getTransformationSystem());
n.setRenderable(modelRenderable);

n.getScaleController().setMinScale(1.74f);
n.getScaleController().setMaxScale(1.75f);

// Set Node's local scale before setting its Parent
n.setLocalScale(new Vector3(1.23f, 1.23f, 1.23f));

n.setParent(anchorNode);

局部缩放多个对象 如果同时在本地缩放多个选定对象(使用
setLocalScale
),则每个对象都将相对于其自身轴心点的位置进行缩放

但是,如果同时全局缩放所有这些选定对象(使用
setWorldScale
),它们将相对于世界的一个结果轴点进行缩放


以下是本地和世界范围的视觉表示:

世界范围:

当地规模:

Anchor anchor = hitResult.createAnchor();
AnchorNode anchorNode = new AnchorNode(anchor);
anchorNode.setParent(arFragment.getArSceneView().getScene());

TransformableNode n = new TransformableNode(arFragment.getTransformationSystem());
n.setRenderable(modelRenderable);

n.getScaleController().setMinScale(1.74f);
n.getScaleController().setMaxScale(1.75f);

// Set Node's local scale before setting its Parent
n.setLocalScale(new Vector3(1.23f, 1.23f, 1.23f));

n.setParent(anchorNode);