ArCore Augmented Images будет располагаться горизонтально на стене. (Android Studio)

Когда используется PhoneStateListener, необходимо убедиться, что PHONE_STATE_IDLE после PHONE_STATE_OFFHOOK используется для запуска действия, которое должно быть выполнено после вызова. Если срабатывание триггера происходит, увидев PHONE_STATE_IDLE, вы закончите выполнение этого перед вызовом. Поскольку вы увидите изменение состояния PHONE_STATE_IDLE -> PHONE_STATE_OFFHOOK -> PHONE_STATE_IDLE.

2
задан Koen Van Looveren 15 January 2019 в 20:24
поделиться

3 ответа

AnchorNode следует позе AugmentedImage, и поэтому вы не можете изменить localRotation или localPosition на этом узле. Из AnchorNode.setLocalRotation : «Установите локальное вращение этого узла , если он не привязан. »

Вы можете изменить локальное преобразование, введя промежуточный Узел:

                    val base = AnchorNode()
                    base.anchor = augmentedImage.createAnchor(augmentedImage.centerPose)

                    val node = Node()
                    node.setParent(base)
                    node.localPosition = Vector3(0f, 0f, augmentedImage.extentZ/2)
                    node.localRotation = Quaternion.axisAngle(Vector3(1.0f, 0f, 0f), -90f)
                    node.localScale = Vector3(augmentedImage.extentX, augmentedImage.extentZ, 0f)

                    node.renderable = renderable
0
ответ дан mbonnin 15 January 2019 в 20:24
поделиться

Я понял это, создав собственный куб (плоский куб) и добавив изображение в качестве текстуры.

fun renderImage(arFragment: ArFragment, anchor: Anchor) {
    Texture.builder().setSource(BitmapFactory.decodeResource(arFragment.resources, R.raw.sample_image))
            .build()
            .thenAccept {
                MaterialFactory.makeOpaqueWithTexture(arFragment.context, it)
                        .thenAccept { material ->
                            val modelRenderable = ShapeFactory.makeCube(
                                    Vector3(0.84f, 0.01f, 1.12f),
                                    Vector3(0.0f, 0.0f, 0.0f),
                                    material)
                            addNodeToScene(arFragment, anchor, modelRenderable)
                        }
            }
}

private fun addNodeToScene(fragment: ArFragment, anchor: Anchor, renderable: Renderable) {
    val node = Node()
    node.renderable = renderable
    val anchorNode = AnchorNode(anchor)
    anchorNode.addChild(node)

    fragment.arSceneView.scene.addChild(anchorNode)
    Toast.makeText(fragment.context, "Added", Toast.LENGTH_SHORT).show()
}
0
ответ дан Koen Van Looveren 15 January 2019 в 20:24
поделиться

Вы должны иметь возможность изменять ориентацию визуализированного изображения / вида / объекта с помощью setLocalRotation.

Например, в моем проекте я использовал приведенный ниже код, который делает визуализированное изображение лицом прямо наружу от обнаруженного изображения.

Node cornerNode;
localPosition.set(-0.0f * image.getExtentX(), 0.1f, +0.5f * image.getExtentZ());
cornerNode = new Node();
cornerNode.setParent(this);
cornerNode.setLocalPosition(localPosition);
cornerNode.setLocalRotation(Quaternion.axisAngle(new Vector3(-1f, 0, 0), 90f));
cornerNode.setRenderable(testViewRenderable);
0
ответ дан Bhavik Shah 15 January 2019 в 20:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: