在何处和何处不指定3D模型缩放比例?

时间:2019-05-29 21:08:00

标签: android scaling arcore sceneform

我需要更好地理解 ARCore Sceneform 场景的缩放过程。

据我所知,为了缩放 Renderable ,我们有三种选择:

1)在 sfa(s) 文件中执行此操作,这可能是生产工作流程中的先决条件,但对我没有帮助试图了解 ARCore-Sceneform 的缩放过程,所以我希望重点介绍以下两个选项;

2)通过 AnchorNode 缩放模型:

...
Anchor anchor = hitResult.createAnchor();
//
AnchorNode anchorNode = new AnchorNode(anchor);
anchorNode.setParent(_arFragment.getArSceneView().getScene());
anchorNode.setRenderable(_renderable);
anchorNode.setLocalScale(new Vector3(0.01f,0.01f,0.01f)); //m -> cm
...

3)通过节点对其进行缩放:

...
Anchor anchor = hitResult.createAnchor();
//
AnchorNode anchorNode = new AnchorNode(anchor);
anchorNode.setParent(_arFragment.getArSceneView().getScene());
//
TransformableNode node = new TransformableNode(_arFragment.getTransformationSystem());
node.setParent(anchorNode);
node.setRenderable(_renderable); 
node.setLocalScale(new Vector3(0.01f,0.01f,0.01f)); //m -> cm
...

这种情况是,无论使用 AnchorNode 还是使用 Node ,我都没有试验相同的结果,因为只有第一个显示正确(预期)缩放。怎么了?

并行地,我不知道对API的节点调用中的正确顺序是什么,即:setParent + setRenderable + setLocalScale,setRenderable + setParent + setLocalScale,...对此有任何帮助吗?

提前感谢您的宝贵时间。

0 个答案:

没有答案