您的位置:首页 > 移动开发 > Android开发

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

2017-09-01 20:42 260 查看
昨天只是简单运行了官方的Demo,今天抽时间看了下文档和代码,大概了解一下原理。
Demo功能很简单,打开之后自动检测平面,手指触摸平面会在触摸位置放置一个机器人。

检测平面成功后如下面截图所示,可以看到很多蓝色小点和平面的菱形网状图。
蓝色点称为锚点,结合手机传感器用于追踪手机移动。详细原理介绍参考官网介绍





网格、小点和机器人都是使用OpenGL在SurfaceView上绘制的,看代码发现,当手指点击时会去检测触摸点与平面的碰撞,如果有碰撞则会在平面处放置一个机器人。理解一个不熟悉的东西,就先试着修改一番。
修改后实现的效果是,如果手指点击时没有碰撞到平面,则在手机当前所在的空间位置放置一个机器人,所做的主要逻辑修改代码如下,也很简单。
原来的逻辑是拿到MotionEvent后,去做碰撞检测,如果有碰撞结果,并且碰撞结果属于平面碰撞类型,即与SDK检测到的平面有碰撞,则把一个标识要显示机器人的PlaneAttachment放到队列。
所做的修改是,新增了一种碰撞类型叫FrameAttachment,不是上面的平面碰撞类型则作为这个类型放到队列。
更多细节可以参考Github



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



以上只是个人理解的大概介绍,没有严格的术语考证,之后再完善。
代码放到了Github上,做了一点修改,测试过是支持Neuxs 6的。

Github地址

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: