android - 在 ARCore Android 中将对象放置在相机前面

标签 android arcore android-augmented-reality

我试图将一个大型 3D 对象(从 .obj 文件生成)放在相机前,但无法做到。将命中结果作为中心点来放置模型。有什么方法可以完成吗?

最佳答案

以下代码将在相机前方 1M 处放置一个 anchor - 您可以根据需要调整深度:

            // Place the anchor 1m in front of the camera. 
            Log.d(TAG,"adding Andy in fornt of camera");
            Frame frame = arFragment.getArSceneView().getArFrame();
            Session session = arFragment.getArSceneView().getSession();
            Anchor newMarkAnchor = session.createAnchor(
                    frame.getCamera().getPose()
                            .compose(Pose.makeTranslation(0, 0, -1f))
                            .extractTranslation());
            AnchorNode addedAnchorNode = new AnchorNode(newMarkAnchor);
            addedAnchorNode.setRenderable(andyRenderable);
            addedAnchorNode.setParent(arFragment.getArSceneView().getScene());

你可以在这里看到一个完整的工作示例——它使用一个按钮来添加节点而不是使用命中结果,这也可能对你有用:https://github.com/mickod/LineView

关于android - 在 ARCore Android 中将对象放置在相机前面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56679208/

相关文章:

android - 当应用程序在后台运行时,WhatsApp 就像来电通知一样

Android 创建一个没有按钮的 Activity

java - 为什么 getAllTrackables 方法只返回一张脸?

android - 需要在 ARCORE 中播放视频

computer-vision - Google ARCore 域模型示例

android - 在 RecyclerView 适配器中显示 FragmentDialog

android - 如何模拟杀戮 Activity 以节省内存?

android - Sceneform - 如何修复泄漏的 SceneView?

java - 图像处理使用 ARCore 和 Android Studio 使用 ArFragment 将 3D 模型放置在图像上

unity-game-engine - 打包 ARCore Unity 项目以供分发