当前位置: 首页 > 知识库问答 >
问题:

ARCore:如何从会话对象创建锚,而不需要平面跟踪?

呼延原
2023-03-14

我一直在尝试这样做,但当我尝试以下操作时,会得到一个NotTrackingException

    Pose pose = Pose.makeTranslation(-0.41058916f, -0.6668466f, 0.04225248f);

    Anchor anchor = arFragment.getArSceneView().getSession().createAnchor(pose);

    Pose pose = Pose.makeTranslation(-0.41058916f, -0.6668466f, 0.04225248f);

    Anchor anchor =new Session(this).createAnchor(pose);

共有1个答案

宫晟
2023-03-14

有多种方法可以设置锚在您的Arcore场景。一种听起来可能会满足你的需求的方法,就是相对于相机焦点设置锚定位置--看这个答案,这个答案已经测试过了,起作用了:

  • https://stackoverflow.com/A/53175458/334402

从会话对象创建锚点的关键代码是:

          //Add an Anchor and a renderable in front of the camera       
          Session session = arFragment.getArSceneView().getSession();
          float[] pos = { 0,0,-1 };
          float[] rotation = {0,0,0,1};
          Anchor anchor =  session.createAnchor(new Pose(pos, rotation));
          anchorNode = new AnchorNode(anchor);
          anchorNode.setRenderable(andyRenderable);
          anchorNode.setParent(arFragment.getArSceneView().getScene());

如果您查看该问题的其他一些答案,您还可以看到一些替代的、非计划跟踪的方法。

 类似资料:
  • 下面是所有3个jsp页面的代码; test1.jsp(jsp第1页的代码) test2.jsp(jsp第2页的代码) test3.jsp(jsp第3页的代码) 在我的例子中,当我第一次调用test1.jsp并单击hyper链接时,它调用test2.jsp,并发现会话已经存在,然后直接调用test3.jsp。但在实际情况中,会话既不在test1.jsp上启动,也不在test2.jsp上启动,除非它进

  • 听众 配置 我正在使用Azure Service Bus Spring Boot Starter连接已启用会话的Servicebus主题/订阅,但无法连接以下消息:需要会话的实体不可能创建非会话消息接收器。

  • 垃圾回收期在管理内存方面非常出色,它非常高效地移除不再使用的对象。但是无论你如何看待它,分配和销毁一个基于堆内存的对象花费处理器时间比分配和销毁不是基于堆内存的对象要多。在函数内创建大量的引用类型对象会引入严重的性能消耗问题。 所以不能让垃圾回收器超负荷工作。你可以借鉴一些简单的技巧最小化垃圾回收器的工作。所有的引用类型对象,即使是局部变量,都被分配存储在堆内存上。每个引用类型的局部变量在函数结束

  • 我正在基于谷歌的hello_ar_java示例应用程序,围绕这个Agora ARcore演示构建我的应用程序。 此应用程序将捕获用户的点击,并检查是否在场景中找到任何平面。如果是,请在该点创建一个锚点。 我想在各种锚之间画一条线。 我在网上找到的所有东西都使用场景窗体和片段。 目前,我已经设法实现了没有arFraium但行不显示,可能是因为这种方法,我不知道如何取代没有arFrature: 要在我

  • 问题内容: 我需要从URL对象创建一个File对象我的需求是我需要创建一个网络图像的文件对象(例如googles徽标) 问题答案: 您可以利用以便从URL加载图像,然后将其写入文件。像这样: 如果需要,这还允许您将图像转换为其他格式。

  • 我想使用证书凭据将文件上载到s3。是否可以使用certifcate获取s3 bucket的客户机对象? 最初,我尝试使用下面的命令上传一个文件, 现在,我不想使用ACCESS_KEY | SECRET_KEY来创建客户机对象,因为它正在边缘设备上运行。相反,我已经生成了证书(IOT)。我想使用此证书创建客户端对象。因此,最后我有了临时访问权|密钥|秘密|会话|令牌。我想传递这些临时凭据以创建客户端