[Android-ARCore开发]ARCore从入门到放弃2-Demo介绍和扩展

昨天只是简单运行了官方的Demo,今天抽时间看了下文档和代码,大概了解一下原理。Demo功能很简单,打开之后自动检测平面,手指触摸平面会在触摸位置放置一个机器人。检测平面成功后如下面截图所示,可以看到很多蓝色小点和平面的菱形网状图。蓝色点称为锚点,结合手机传感器用于追踪手机移动。详细原理介绍参考官网介绍网格、小点和机器人都是使用OpenGL在SurfaceView上绘制的,看代码发现,当手指点击时

大家好,又见面了,我是全栈君。

昨天只是简单运行了官方的Demo,今天抽时间看了下文档和代码,大概了解一下原理。

Demo功能很简单,打开之后自动检测平面,手指触摸平面会在触摸位置放置一个机器人。


检测平面成功后如下面截图所示,可以看到很多蓝色小点和平面的菱形网状图。

蓝色点称为锚点,结合手机传感器用于追踪手机移动。详细原理介绍参考官网介绍

[Android-ARCore开发]ARCore从入门到放弃2-Demo介绍和扩展[Android-ARCore开发]ARCore从入门到放弃2-Demo介绍和扩展

网格、小点和机器人都是使用OpenGL在SurfaceView上绘制的,看代码发现,当手指点击时会去检测触摸点与平面的碰撞,如果有碰撞则会在平面处放置一个机器人。理解一个不熟悉的东西,就先试着修改一番。

修改后实现的效果是,如果手指点击时没有碰撞到平面,则在手机当前所在的空间位置放置一个机器人,所做的主要逻辑修改代码如下,也很简单。

原来的逻辑是拿到MotionEvent后,去做碰撞检测,如果有碰撞结果,并且碰撞结果属于平面碰撞类型,即与SDK检测到的平面有碰撞,则把一个标识要显示机器人的PlaneAttachment放到队列。

所做的修改是,新增了一种碰撞类型叫FrameAttachment,不是上面的平面碰撞类型则作为这个类型放到队列。

更多细节可以参考Github

[Android-ARCore开发]ARCore从入门到放弃2-Demo介绍和扩展

修改后的效果如图,点击平面则在平面放置机器人,没有平面则在当前空间手机的位置放置一个机器人。

[Android-ARCore开发]ARCore从入门到放弃2-Demo介绍和扩展


以上只是个人理解的大概介绍,没有严格的术语考证,之后再完善。

代码放到了Github上,做了一点修改,测试过是支持Neuxs 6的。

Github地址

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121304.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MySQL练习题 (练习表+题目+答案)「建议收藏」

    MySQL练习题 (练习表+题目+答案)「建议收藏」mysql练习题(表+题目+答案)一、创建所需要练习的表CREATETABLEJ_TEACHER(tnointNOTNULLPRIMARYKEY,tnamevarchar(20)NOTNULL);INSERTINTOJ_TEACHER(tno,tname)VALUES(1,‘张老师’);INSERTINTOJ_TEACHER(tno,tname)VAL…

    2022年9月18日
    0
  • 视频编解码算法面试总结

    视频编解码算法面试总结H.264与H.265的主要差异H.265仍然采用混合编解码,编解码结构域H.264基本一致, 主要的不同在于: 1.编码块划分结构:采用CU(CodingUnit)、PU(PredictionUnit)和TU(TransformUnit)的递归结构。 2.基本细节:各功能块的内部细节有很多差异 3.并行工具:增加了Tile以及WPP等并行工具集以提高编码速度

    2022年7月15日
    19
  • 0603贴片电阻阻值对照表_贴片电阻快速识别表与识别方法[通俗易懂]

    0603贴片电阻阻值对照表_贴片电阻快速识别表与识别方法[通俗易懂]贴片电阻快速识别表与识别方法,要想快速识别贴片电阻,那就必须知道什么是贴片电阻?贴片电阻就是金属粉和玻璃釉粉混合,采用丝网印刷法印在基板上制成的电阻器。与贴片电容不一样的是,贴片电容一般比电容厚,且电阻两边为银白色镀锡,中间黑色。下面我们来看看具体的两个识别方法。快速识别贴片电阻,方法一:如上图所示,正面主要是中间黑色带电阻代码,方便识别贴片电阻大小,两头是锡面,银白色,方便焊接。背面中间是高纯度…

    2022年4月19日
    472
  • Spring Boot 打的包为什么能直接运行?

    Spring Boot 提供了一个插件 spring-boot-maven-plugin 用于把程序打包成一个可执行的jar包。 在pom文件里加入这个插件即可: <buil…

    2021年6月22日
    120
  • 标签的含义_新建标签页的网址

    标签的含义_新建标签页的网址功能说明版权信息适用范围首页模板,列表模板,内容模板基本语法[NT:unLoop,NT:SiteID=0,NT:LabelType=CopyRight][/NT:unLoop]必填参数NT:SiteID表示站群ID,0表示总站NT:LabelType标签类型:值为CopyRight,表示版权信息后台设置:控制面板—系统…

    2022年9月30日
    2
  • 在线平面图设计教程[通俗易懂]

    在线平面图设计教程[通俗易懂]在介绍平面图之前先简单了解一下平面图的概念什么是平面图平面图,又称图则,是建筑物工程图的组成部分。当测区面积不大,半径小于10公里(甚至25公里)时,可以用水平面代替水准面。在这个前提下,可以把测区内的地面景物沿铅垂线方向投影到平面上,按规定的符号和比例缩小而构成相似图形,即为平面图。平面图以比例图绘制,表现该建筑物内的客厅、房间、空间及其它硬件的分布,其中包括主力墙、出入口、窗的位置图。平…

    2022年5月26日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号