I’m trying to resize my AR models, I’m working with models the size of buildings.
I managed to resize my model using worldscale and localscale but what exactly is the difference and when should I use worldscale to enlarge my model and when to use localscale?
Scaling locally a single object
In local space, all operations on the model (translation, rotation and scaling) are performed relative to the Pivot Point of the model.
Official Google ARCore developer documentation says:
public void setLocalScale (Vector3 scale)
Sets the scale of this node relative to its parent (local-space). If
isTopLevel()is true, then this is the same as
Here’s how it looks like in a real code:
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);
Scaling locally multiple objects
When multiple selected objects are simultaneously scaled locally (using
setLocalScale), then each of them will be scaled relative to the position of its own pivot point.
However, if you simultaneously scale all these selected objects globally (using
setWorldScale), they will be scaled relative to one resulting pivot point of The World.
Here’s a visual representation of local and world scale:
Answered By – Andy Jazz