EasyAR4.0在去年底推出,新增了运动跟踪,稀疏云地图等功能。

注册,基本设置

EasyAR使用需要先注册用户,平面图像跟踪,物体跟踪,表面跟踪的功能只需要添加“Sense License Key”即可。如果需要使用稀疏云地图,则还需要添加“API KEY”

Sense License Key是和应用的Package Name/Bundle ID绑定的。

在导入EasyAR SDK以后,点击菜单【EasyAR--Change License Key】或者目录【EasyAR/Resources/EasyAR】下的【Settings】文件,即可输入key。

总体结构

EasyAR官方把很多东西做成了预制件,多数情况下直接使用预制件即可。

【EasyAR】和【RenderCamera】是必须的内容,根据类型,搭配【VideoCameraDevice】和【VIOCameraDevice】。

【Focus Mode】官方说明

需要将Camera设置为单色黑色背景,不能使用天空盒

平面图像跟踪

平面图像跟踪中,每个被跟踪的图像对应一个【ImageTarget】,【ImageTarget】需要指定【ImagetTracker】。同时显示的数量由【Simultaneous Target Number】决定。target 和 tracker都可以是多个。

程序控制方面,【ImageTargetController】有对应事件,官方例子【ImageTracking_Targets】有参考。

        private void AddTargetControllerEvents(ImageTargetController controller){if (!controller){return;}controller.TargetFound += () =>{Debug.LogFormat("Found target {{id = {0}, name = {1}}}", controller.Target.runtimeID(), controller.Target.name());};controller.TargetLost += () =>{Debug.LogFormat("Lost target {{id = {0}, name = {1}}}", controller.Target.runtimeID(), controller.Target.name());};controller.TargetLoad += (Target target, bool status) =>{imageTargetControllers[controller] = status ? true : imageTargetControllers[controller];Debug.LogFormat("Load target {{id = {0}, name = {1}, size = {2}}} into {3} => {4}", target.runtimeID(), target.name(), controller.Size, controller.Tracker.name, status);};controller.TargetUnload += (Target target, bool status) =>{imageTargetControllers[controller] = status ? false : imageTargetControllers[controller];Debug.LogFormat("Unload target {{id = {0}, name = {1}}} => {2}", target.runtimeID(), target.name(), status);};}

3D物体跟踪

3D物体跟踪和平面图像跟踪基本一样,区别只是跟踪时候的文件设置不一样。程序处理时候事件是在【ObjectTargetController】下。

表面跟踪

表面跟踪是在设备不支持运动跟踪情况下的退而求其次的选择,不建议使用。

启动后,【WorldRoot】游戏对象会在当前设备位置固定下来,摄像头参照移动。

运动跟踪

运动跟踪对设备有要求,具体看:Motion Tracking支持的设备

运动跟踪是稀疏云地图和稠密云地图的基础。

运动跟踪也是,启动以后,【WorldRoot】会在启动位置固定,摄像头根据移动变化。

稀疏云地图

稀疏云地图首先需要运动跟踪。

用MapWorker来控制Map。

【Locailzation Mode】官方说明,官方例子中,创建地图用UntilSuccess,加载地图用的是KeepUpdate

【Source Type】为【Map Builder】时是创建地图。【Map Manager】时是加载地图。

官方创建地图和加载地图的方法都在例子的【MapSession.cs】中。

保存方法是

MapWorker.BuilderMapController.Host(name, preview);
其中,preview是缩略图,可以为空。name也可以拾空字符串。通过MapHost事件返回结果。

            MapWorker.BuilderMapController.MapHost += (map, isSuccessful, error) =>{...};try{MapWorker.BuilderMapController.Host(name, preview);}catch (Exception e){...}

地图加载方式事件稍微多点,设置了map的ID和名称以后,设置MapLoad事件获取结果,MapLocalized和MapStopLocalize事件主要是用来获取状态。

    controller.MapManagerSource = meta.Map;...controller.MapLoad += (map, status, error) =>{...};controller.MapLocalized += () =>{...};controller.MapStopLocalize += () =>{...};MapWorker.Localizer.startLocalization();

稠密空间地图

稠密空间地图比运动跟踪的搭建跟简单,把官方的prefab直接拖到场景中即可。默认的地图是可以和物体发生碰撞的。

在官方的例子里,只演示了如何显示隐藏地图。

        public void RenderMesh(bool show){if (!dense){return;}dense.RenderMesh = show;}public void TransparentMesh(bool trans){if (!dense){return;}dense.MeshColor = trans ? Color.clear : meshColor;}

EasyAR4.0简单的使用说明

EasyAR4.0简单使用说明相关推荐

  1. ViewPager的简单使用说明

    ViewPager的简单使用说明 2013-12-14 00:55 by ...平..淡..., 7 阅读, 0 评论, 收藏, 编辑 前提:工程中使用ViewPager,需要导入google提供的j ...

  2. struts 标签s:ierator的简单使用说明

    struts 标签<s:ierator>的简单使用说明,只显示<s:ierator> 的前6条数据 <s:iterator value="lstVisitor& ...

  3. SWFObject 2.0的使用说明

    SWFObject 2.0的使用说明 2009-05-23 13:24 <div id="myContent"> <p>Alternative conten ...

  4. Glade的简单使用说明+例子(一)

    Glade 的简单使用说明+例子 Gnome 下已开发出了Glade这一应用软件,它是传统界面设计工具Gtk/Gdk的扩展,能满足基于Gtk+库的图形用户界面可视化开发的基本需求 一.Glade简介 ...

  5. 【Unity-学习-013】EasyAR4.0稀疏空间地图 在Unity中编辑扫描的场景

    之前遇到一个实验性的项目,用空间地图做场景识别,然后和游客互动拍照的需求.第一感觉就想到了 EasyAR4.0主推的空间地图功能.对于EasyAR的详细信息,请直接移步官网.那里有详细的介绍和简单的入 ...

  6. 西子奥的斯电梯服务器使用教程方法_OTIS电梯服务器简单使用说明

    OTIS 电梯服务器简单使用说明 来源 : 发布日期 :2008-1-9 本说明书仅以与 TOEC-40 型电梯相连时为例,与其它电梯相连时略有不同. 测试工具接在 LB (逻辑板)上,因此它可以一边 ...

  7. 企业综合管理系统 V1.0 版本 使用说明

    使用说明 企业综合管理系统 V1.0 版本 数据库:Office Access SqlServer 2005 现2.0版本己完成正在编写使用说明 智能综合管理系统2.0版本 使用说明 系统简介: 本人 ...

  8. liblinear简单使用说明

    liblinear简单使用说明 liblinear适合解决大规模数据和高维稀疏特征的分类和回归问题. 特征文件格式:跟libsvm的一致,每一行都是 label index1:value1 index ...

  9. Vue 之 Vue Cli Html 移动端调试调试工具简单使用说明(Eruda、vConsole)

    Vue 之 Vue Cli Html 移动端调试调试工具简单使用说明(Eruda.vConsole) 目录 Vue 之 Vue Cli Html 移动端调试调试工具简单使用说明(Eruda.vCons ...

  10. oracle union 类型转换,Oracle 中 union 和union all 的简单使用说明

    1.刚刚工作不久,经常接触oracle,但是对oracle很多东西都不是很熟.今天我们来了解一下union和union all的简单使用说明.Union(union all): 指令的目的是将两个 S ...

最新文章

  1. 二、如何读入图片、显示图像?
  2. C# 多网卡 Server Listen
  3. SQL数据库无法附加 系统表损坏修复 数据库中病毒解密恢复
  4. 【转】【RDS教程】专业DBA速成 - CPU优化篇
  5. 三十二、R语言基本语法(下篇)
  6. java js获取css方法_5种JavaScript和CSS交互的方法
  7. 空间皮肤代码_不废话,看我20行代码搞定色块提取与定位…….
  8. C++数据抽象和问题求解(第6版)
  9. 两台机器实现QPS3000的服务优化
  10. Auto.js 如何WIFI连接VS Code插件
  11. 为什么很多人说Python简单呢?
  12. linux mutt 使用指南,linux mutt详解
  13. 性能调试工具——oprofile
  14. JavaSE基础——方法参数类型及返回值类型问题、权限修饰符、内部类、匿名内部类
  15. Zoox 的自动驾驶汽车方法
  16. 从宏杉合作伙伴大会看本土存储厂商的“逆袭”
  17. WhiteSmoke无限试用
  18. python微博爬虫实战_爬虫实战——四大指数之微博指数(一)
  19. 猿人学第5题,hook任意cookie被设置的瞬间
  20. WebGoat教程解析——Hijack a Session

热门文章

  1. yoga710怎么进入bios_联想笔记本怎么进入BIOS联想手提电脑进BIOS方法汇总
  2. 如何高效完成产品生命周期管理
  3. Panel控件—让你的界面变好看
  4. 个人练习 —— 使用c#、Winform窗体 编写鼠标连点器(附代码和工具逻辑)
  5. 思科路由器配置命令(四)
  6. android开发学习-日经常使用到的好东西-经常使用技巧分享
  7. 计算机快捷键屏幕保护是什么原因,电脑屏幕保护_电脑屏幕保护快捷键
  8. 使用ACCESS数据库时出现“操作必须使用一个可更新的查询”的解决办法
  9. Libevent 源码文件结构分析
  10. 《数值计算》学习笔记(上)