我试着调整我的AR模型的大小,我正在和建筑物大小的模型一起工作。
我成功地用世界尺度和局部尺度调整了我的模型的大小,但是到底有什么不同,我应该什么时候使用世界尺度来扩大我的模型,什么时候使用本地尺度呢?
发布于 2021-05-19 23:33:58
局部缩放单个对象
在局部空间中,模型上的所有操作(平移、旋转和缩放)都是相对于模型的轴点执行的。
官方Google ARCore developer文档他说
public void setLocalScale (Vector3 scale) 设置此节点相对于其父节点(局部空间)的规模。如果
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),它们将相对于世界的一个支点进行缩放。
这里有一个本地和世界尺度的可视化表示:

世界规模:

地方规模:

https://stackoverflow.com/questions/67605996
复制相似问题