Где и где - не указывать масштабирование 3d модели? - PullRequest
1 голос
/ 30 мая 2019

Мне нужно лучше понять процесс масштабирования для 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) масштабировать его с помощью Node :

...
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, ... Любая помощь с этим?

Заранее спасибо за ваше время.

...