ARCore Android Studio: поместите 3D-модель в 2D-координату экрана.

У меня есть 2D координаты экрана. Вот где я хочу разместить 3D-модель независимо от глубины. Не обязательно должен быть самолет. Это могло быть в эфире или где угодно. Как мне это сделать?

Как мне получить положение якоря из 2D-координаты. Я здесь заблудился, так как документации нет. Во всех обучающих материалах, которые я видел, поместите 3D-модель в горизонтальную плоскость.


person MrRobot9    schedule 09.11.2020    source источник


Ответы (1)


Если вы все еще используете Sceneform, то приведенный ниже код разместит объект перед камерой с любой желаемой глубиной - вы можете поиграть с 'pos', чтобы переместить его, если центр вам не нужен, и изменить глубину .

//Add an Anchor and a renderable in front of the camera       
Session session = arFragment.getArSceneView().getSession();
float[] pos = { 0, 0, -1 };
float[] rotation = { 0, 0, 0, 1 };
Anchor anchor =  session.createAnchor(new Pose(pos, rotation));
anchorNode = new AnchorNode(anchor);
anchorNode.setRenderable(andyRenderable);
anchorNode.setParent(arFragment.getArSceneView().getScene());

Обратите внимание, что Sceneform имеет «открытый исходный код и заархивирован», поэтому вы, возможно, не захотите использовать его сейчас - см. Примечание здесь: https://developers.google.com/sceneform/develop.

Если вы не используете Scenefrom, вы можете поэкспериментировать с «мгновенным размещением» ARCore - он предназначен для размещения объекта до того, как будут удалены плоскости и т. Д., Так что это не совсем то, что вы ищете, но вы можете обнаружить, что это может удовлетворить ваши потребности. Более подробная информация и примеры здесь: https://developers.google.com/ar/develop/java/instant-placement/developer-guide

person Mick    schedule 10.11.2020