ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

android – ARCore – 如何在没有任何Feature Points的墙壁上放置/创建对象?

2019-08-28 00:23:51  阅读:233  来源: 互联网

标签:android arcore opencv augmented-reality sceneform


例如:我有兴趣将2D图像放置在垂直平面上(例如:白色或单个纯色墙,不存在特征点).

有哪些不同的解决方法?

我知道ARCore支持相对于其他对象放置对象.如何扩展它以满足我相对于未检测到特征点的其他对象放置对象的要求?

任何想法或解决方法非常感谢.

解决方法:

您可以相对于摄像机位置设置锚点 – 即将摄像机指向要连接的墙壁.

要获得正确的深度,您需要将摄像机保持在设定的预设距离,或者添加向后和向前移动对象的能力.正如@Ali所提到的,你会有漂移,但这在当时很常见.

下面的代码将在摄像机视图的中间添加锚点:

          //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());

请看这里有关此的更多讨论:

> https://github.com/google-ar/sceneform-android-sdk/issues/19

该方法确实有效,您可以根据需要设置深度.

如果你确实想要向前和向后移动可渲染,那么可能有更好的方法来做到这一点,但我发现,在一个单独的GitHub讨论建议之后,最可靠的方法是删除锚并创建一个新的锚.新位置后面或前面的设定位置 – 即有一个按钮,允许用户将可渲染的背面移动0.1M或向前移动0.1M.

标签:android,arcore,opencv,augmented-reality,sceneform
来源: https://codeday.me/bug/20190827/1745868.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有