[Android-ARCore开发]ARCore从入门到放弃2-Demo介绍和扩展
2017-09-01 20:42
260 查看
昨天只是简单运行了官方的Demo,今天抽时间看了下文档和代码,大概了解一下原理。
Demo功能很简单,打开之后自动检测平面,手指触摸平面会在触摸位置放置一个机器人。
检测平面成功后如下面截图所示,可以看到很多蓝色小点和平面的菱形网状图。
蓝色点称为锚点,结合手机传感器用于追踪手机移动。详细原理介绍参考官网介绍
网格、小点和机器人都是使用OpenGL在SurfaceView上绘制的,看代码发现,当手指点击时会去检测触摸点与平面的碰撞,如果有碰撞则会在平面处放置一个机器人。理解一个不熟悉的东西,就先试着修改一番。
修改后实现的效果是,如果手指点击时没有碰撞到平面,则在手机当前所在的空间位置放置一个机器人,所做的主要逻辑修改代码如下,也很简单。
原来的逻辑是拿到MotionEvent后,去做碰撞检测,如果有碰撞结果,并且碰撞结果属于平面碰撞类型,即与SDK检测到的平面有碰撞,则把一个标识要显示机器人的PlaneAttachment放到队列。
所做的修改是,新增了一种碰撞类型叫FrameAttachment,不是上面的平面碰撞类型则作为这个类型放到队列。
更多细节可以参考Github
修改后的效果如图,点击平面则在平面放置机器人,没有平面则在当前空间手机的位置放置一个机器人。
以上只是个人理解的大概介绍,没有严格的术语考证,之后再完善。
代码放到了Github上,做了一点修改,测试过是支持Neuxs 6的。
Demo功能很简单,打开之后自动检测平面,手指触摸平面会在触摸位置放置一个机器人。
检测平面成功后如下面截图所示,可以看到很多蓝色小点和平面的菱形网状图。
蓝色点称为锚点,结合手机传感器用于追踪手机移动。详细原理介绍参考官网介绍
网格、小点和机器人都是使用OpenGL在SurfaceView上绘制的,看代码发现,当手指点击时会去检测触摸点与平面的碰撞,如果有碰撞则会在平面处放置一个机器人。理解一个不熟悉的东西,就先试着修改一番。
修改后实现的效果是,如果手指点击时没有碰撞到平面,则在手机当前所在的空间位置放置一个机器人,所做的主要逻辑修改代码如下,也很简单。
原来的逻辑是拿到MotionEvent后,去做碰撞检测,如果有碰撞结果,并且碰撞结果属于平面碰撞类型,即与SDK检测到的平面有碰撞,则把一个标识要显示机器人的PlaneAttachment放到队列。
所做的修改是,新增了一种碰撞类型叫FrameAttachment,不是上面的平面碰撞类型则作为这个类型放到队列。
更多细节可以参考Github
修改后的效果如图,点击平面则在平面放置机器人,没有平面则在当前空间手机的位置放置一个机器人。
以上只是个人理解的大概介绍,没有严格的术语考证,之后再完善。
代码放到了Github上,做了一点修改,测试过是支持Neuxs 6的。
Github地址
相关文章推荐
- [Android-ARCore开发]ARCore从入门到放弃1-Demo上手
- [Android-ARCore开发]ARCore从入门到放弃1-Demo上手
- Android开发入门之Window 环境概念介绍
- Android App开发中HTTP扩展包OkHttp的入门使用指南
- Android开发书籍推荐:从入门到精通系列学习路线书籍介绍
- Android开发入门第一季(环境组成介绍)
- Android Studio Jni开发详细入门,Aes加密demo
- Android开发入门之环境概念介绍
- Android开发从入门到放弃(4)使用RelativiLayout
- Android开发从入门到放弃(9)使用ListView显示一个类的数组
- Android开发书籍推荐:从入门到精通系列学习路线书籍介绍
- Android开发从入门到放弃(10)适配GridView
- Android开发入门之Window 环境概念介绍
- Android开发书籍推荐:从入门到精通系列学习路线书籍介绍
- Android开发从入门到放弃(1)在Activity之间传递数据
- phonegap 开发入门 PhoneGap官方网站上有详细的入门示例教程,这里,我针对使用PhoneGap进行Android移动应用的开发对其官网的Get Started进行一些介绍、补充。 Ste
- Android开发书籍推荐:从入门到精通系列学习路线书籍介绍
- Android开发从入门到放弃(2)保存Activity的状态
- Android WebRTC 音视频开发总结(二)-- webrtcdemo介绍
- Android开发从入门到放弃(3)使用SharedPreferences保存数据