В HelloSceneform при замене этих строк ...
TransformableNode andy = new TransformableNode(arFragment.getTransformationSystem());
andy.setParent(anchorNode);
andy.setRenderable(andyRenderable);
andy.select();
... этими строками и запустите приложение.
Texture.builder()
.setSource(getApplicationContext(), R.drawable.boardbackground)
.build()
.thenAccept(backtexture ->
MaterialFactory.makeTransparentWithTexture(getApplicationContext(), backtexture)
.thenAccept(backmaterial -> {
ModelRenderable backrenderable = ShapeFactory.makeCube(new Vector3(1f, 0.01f, 1f), Vector3.zero(), backmaterial);
Node background = new Node();
background.setLocalPosition(Vector3.up());
background.setParent(anchorNode);
background.setRenderable(backrenderable);
Texture.builder()
.setSource(getApplicationContext(), R.drawable.img_20180609_115300)
.build()
.thenAccept(texture ->
MaterialFactory.makeTransparentWithTexture(getApplicationContext(), texture)
.thenAccept(material -> {
ModelRenderable renderable = ShapeFactory.makeCube(new Vector3(0.5f, 0.01f, 0.5f), Vector3.zero(), material);
Node foreground = new Node();
foreground.setLocalPosition(new Vector3(0.2f, 0.1f, 0f));
foreground.setParent(background);
foreground.setRenderable(renderable);
})
);
})
);
В результате следующий эффект : даже когда дочерний узел находится над родительским узлом, вращение телефона приводит к перемещению дочернего узла к задней части родительского узла.
Это происходит, когда в центре или в локальной позициидочернего узла имеет значение, отличное от 0.
Эта проблема была сначала сообщена ARCore в июле, а затем сообщена в Sceneform в конце августа, но обе команды полностью игнорируют ее.Таким образом, ARCore совершенно непригоден для меня.Любая идея решить эту проблему приветствуется.