Java 阿科雷–;WorldScale和LocalScale的区别是什么?
我正在尝试调整AR模型的大小,我正在使用建筑物大小的模型 我使用worldscale和localscale成功地调整了模型的大小,但到底有什么区别?我应该在什么时候使用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
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);