首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ARCore -- WorldScale和LocalScale有什么区别?

ARCore -- WorldScale和LocalScale有什么区别?
EN

Stack Overflow用户
提问于 2021-05-19 15:12:26
回答 1查看 241关注 0票数 2

我试着调整我的AR模型的大小,我正在和建筑物大小的模型一起工作。

我成功地用世界尺度和局部尺度调整了我的模型的大小,但是到底有什么不同,我应该什么时候使用世界尺度来扩大我的模型,什么时候使用本地尺度呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-19 23:33:58

局部缩放单个对象

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

官方Google ARCore developer文档他说

代码语言:javascript
复制
public void setLocalScale (Vector3 scale) 

设置此节点相对于其父节点(局部空间)的规模。如果isTopLevel()是真的,那么这与setWorldScale(Vector3)是一样的。

下面是真实代码中的样子:

代码语言:javascript
复制
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),它们将相对于世界的一个支点进行缩放。

这里有一个本地和世界尺度的可视化表示:

世界规模:

地方规模:

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67605996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档