基于增强图像中心姿势的新锚点

时间:2018-07-11 09:44:10

标签: opengl-es arcore sceneform

我需要一些帮助来创建锚点,该锚点应与增强的图像中心姿势保持固定的偏移量。

增强后的图像是infoboard,模型是右图所示的平面图,实际上是“绘制”在板后的地面上。

我已经创建了平面图的模型,当检测到增强图像时,我想将其放置在地面上。

我认为有一些很好的方法可以完成一些Matrix操作,但我没有发现。相反,这就是我想出的

          Pose modelPose = image.getCenterPose();
      float[] modelTranslation = modelPose.extractTranslation()
          .transformPoint(new float[]{position.x, position.y, position.z});
      float[] modelRotation = modelPose.extractRotation().getRotationQuaternion();
      Anchor anchor = session.createAnchor(
          new Pose(modelTranslation, new float[]{0f, modelRotation[1], 0f, modelRotation[3]}));

      AnchorNode anchorNode = new AnchorNode(anchor);
      anchorNode.setLocalScale(editArea.getScale());
      anchorNode.setParent(arFragment.getArSceneView().getScene());

不幸的是,这是非常不准确的,因为每次识别到增强图像时模型的位置都不同。显然我在这里错过了一些东西。

有可靠的方法完成此操作的提示吗?

0 个答案:

没有答案