arcore 适合 "observatory" 类型的场景吗
Is arcore a good fit for "observatory" type of scenes
天文台从内部显示一个球体,用户可以在其中环顾四周,查看 "sky" 上的各种物体。我对 sceneform api 很感兴趣,但不确定 arcore 在无法识别任何景观特征时是否适合跟踪。 arcore适合这样的场景吗?
一般来说,ARCore 和 Sceneform 似乎设置为检测 'planes',然后将锚点和可渲染对象附加到这些平面。
您的应用程序听起来好像没有平面,因此您可能会发现很多 ARCore 机制、文档和示例对您的帮助并不如您所愿。
但是,如果坐标正确,可以将 'anchor' 和可渲染对象附加到一个点。
下面的代码,来自这个讨论 https://github.com/google-ar/arcore-android-sdk/issues/110,允许您将一个对象放在相机前面,例如:
mAnchors.add(session.createAnchor(
frame.getCamera().getPose()
.compose(Pose.makeTranslation(0, 0, -1f))
.extractTranslation()))
如果您进行实验,您会发现可以在 Pose.makeTranslation 方法中调整 x、y 和 z 坐标,以将对象放置在您需要的位置。
您也不需要像上面那样使用相机,只要您有姿势就可以添加可渲染对象 - 请参见下面的示例:
Frame frame = arFragment.getArSceneView().getArFrame();
myAnchor = session.createAnchor(myPose.extractTranslation());
myAnchorNode = new AnchorNode(myAnchor);
myAnchorNode.setRenderable(myRenderable);
myAnchorNode.setParent(arFragment.getArSceneView().getScene());
天文台从内部显示一个球体,用户可以在其中环顾四周,查看 "sky" 上的各种物体。我对 sceneform api 很感兴趣,但不确定 arcore 在无法识别任何景观特征时是否适合跟踪。 arcore适合这样的场景吗?
一般来说,ARCore 和 Sceneform 似乎设置为检测 'planes',然后将锚点和可渲染对象附加到这些平面。
您的应用程序听起来好像没有平面,因此您可能会发现很多 ARCore 机制、文档和示例对您的帮助并不如您所愿。
但是,如果坐标正确,可以将 'anchor' 和可渲染对象附加到一个点。
下面的代码,来自这个讨论 https://github.com/google-ar/arcore-android-sdk/issues/110,允许您将一个对象放在相机前面,例如:
mAnchors.add(session.createAnchor(
frame.getCamera().getPose()
.compose(Pose.makeTranslation(0, 0, -1f))
.extractTranslation()))
如果您进行实验,您会发现可以在 Pose.makeTranslation 方法中调整 x、y 和 z 坐标,以将对象放置在您需要的位置。
您也不需要像上面那样使用相机,只要您有姿势就可以添加可渲染对象 - 请参见下面的示例:
Frame frame = arFragment.getArSceneView().getArFrame();
myAnchor = session.createAnchor(myPose.extractTranslation());
myAnchorNode = new AnchorNode(myAnchor);
myAnchorNode.setRenderable(myRenderable);
myAnchorNode.setParent(arFragment.getArSceneView().getScene());