【发布时间】:2019-08-27 14:06:31
【问题描述】:
根据官方文档Recognize and Augment Images
从 ARCore 1.9 开始,如果您的图像永远不会从它的 位置(例如,贴在墙上的海报),您可以附加一个 图像的全局锚点,以增加跟踪的稳定性。
但没有给出如何在代码中实际执行的进一步提示或说明。请指教。
【问题讨论】:
-
您是否在其他地方找到了您的问题的答案?我也在寻找这个信息,但它不存在。
标签: arcore
根据官方文档Recognize and Augment Images
从 ARCore 1.9 开始,如果您的图像永远不会从它的 位置(例如,贴在墙上的海报),您可以附加一个 图像的全局锚点,以增加跟踪的稳定性。
但没有给出如何在代码中实际执行的进一步提示或说明。请指教。
【问题讨论】:
标签: arcore
他们的意思可能是创建一个普通的锚。
Trackable.createAnchor()
这将强制 ARCore 在内存中保留更多与该位置相关的数据。
【讨论】:
您可以像这样创建附加到图像的锚点:
// Create a new anchor for newly found images.
if (!augmentedImageMap.containsKey(augmentedImage)) {
AugmentedImageNode node = new AugmentedImageNode(this);
node.setImage(augmentedImage);
augmentedImageMap.put(augmentedImage, node);
arFragment.getArSceneView().getScene().addChild(node);
}
break;
在此处查看完整示例,包括在 Sceneforms 中的上述摘录:https://github.com/google-ar/sceneform-android-sdk/blob/master/samples/augmentedimage/app/src/main/java/com/google/ar/sceneform/samples/augmentedimage/AugmentedImageActivity.java
在 ARCore 代码实验室中详细描述了将锚点托管为云锚点 - 请参阅此处的链接:https://codelabs.developers.google.com/codelabs/arcore-cloud-anchors/#2
整个代码实验室值得一看,因为它简短明了,但托管您创建的锚点的关键行如下:
snackbarHelper.showMessage(getActivity(), "Now hosting anchor...");
cloudAnchorManager.hostCloudAnchor(
getArSceneView().getSession(), anchor, this::onHostedAnchorAvailable);
【讨论】: