4.4.0¶
EasyAR Sense Unity Plugin是EasyAR Sense在Unity中的插件,它在Unity中提供EasyAR Sense功能,可以独立工作或者也可以与AR Foundation协同工作,并且支持在Nreal眼镜上的使用。建议阅读 EasyAR Sense 4.4.0 发行说明。
EasyAR Sense Unity Plugin 4.4.0 增加了许多新功能和改进,主要集中在这几方面:
支持 Unity AR Foundation
EasyAR现在可以与AR Foundation协同工作,这增强了EasyAR与AR Foundation双方的能力,可以同时获得双方的优势。比如,在现实环境中使用EasyAR稀疏空间地图定位设备的同时,可以利用AR Foundation暴露的ARKit或ARCore的能力,比如环境探针。
AR Foundation支持是通过插件底层EasyAR Sense的灵活功能之一,自定义相机实现的。以此作为参考,现在可以比以往更容易地自定义插件来支持其它AR框架。
支持 Nreal 眼镜(带有VIO能力的AR眼镜)
EasyAR现在可以支持 Nreal眼镜。Nreal支持是通过插件底层EasyAR Sense的灵活功能之一,自定义相机实现的。
支持 Unity 通用渲染管线(Universal Render Pipeline)
从这个版本开始,URP支持将会内置在插件中。
支持 EasyAR Cloud SpatialMap
EasyAR Cloud SpatialMap 提供城市级AR云方案。EasyAR Sense Unity Plugin是在应用端支撑EasyAR Cloud SpatialMap的重要开发工具之一。
新增运动融合功能
只要任意一种运动跟踪功能可以使用,EasyAR 运动融合就可以让静止图像和物体的跟踪更加稳定,并且可以在目标离开相机视野之后继续跟踪。这个新功能不是像在之前版本中可以做到的那样简单的同时运行运动跟踪和图像跟踪,而是在融合两个跟踪的基础上提供了更优的跟踪结果。
全新的AR Session创建流程
AR session及其它AR组件的创建现在可以使用GameObject菜单完成,使用更加灵活方便。Prefab已经标记为过时,并将在将来的发布中删除。
详细更新内容如下:
EasyAR Sense Unity Plugin
++ 添加Unity AR Foundation 支持++ 添加Unity通用渲染管线(URP)支持++ 添加 Nreal 眼镜支持++ 添加运动融合功能,在运动跟踪可用的时候优化图像和3D物体跟踪++ 添加 CloudSpatialMapLocalizerFrameFilter 以支持 EasyAR Cloud SpatialMap++ 引入创建AR session和其它AR组件的新方法+ 添加以功能组织的 GameObject 菜单项,用于创建 AR session 和其它 GameObject+ 添加许多有用的 GameObject 预设菜单项- prefab已经标记为过时,并将在将来的发布中删除+ 添加更多 frame source以扩展 AR 框架和设备支持+ 添加 ARCoreFrameSource & ARKitFrameSource & MotionTrackerFrameSource 以替换 VIOCameraDeviceUnion,运行时的策略选择由更灵活的 ARComponentPicker 替换+ 添加 ARFoundationFrameSource 以支持Unity AR Foundation+ 添加 HuaweiAREngineFrameSource 以支持华为 AR Engine- VIOCameraDeviceUnion 已经标记为过时,并将在将来的发布中删除* VideoCameraDevice 重命名为 CameraDeviceFrameSource* RenderCamera 被移动到了 FrameSource GameObject 上* AR session中的 Camera 会由 FrameSource 在运行时进行选择* MotionTrackerFrameSource 默认会尝试从服务器更新设备支持列表,超时时间为2s* ARCoreFrameSource & ARKitFrameSource 获得了可以控制自动对焦开关的能力+ 优化 AR session 工作量和接口+ 添加 ARComponentPicker 组件来在运行时挑选可用的 frame source及其它组件+ 添加 ARSession.AvailableCenterMode 以查询在一个session中所有可用的中心模式+ 添加 ARSession.Origin 以获取在运动跟踪功能在运行时,相机运动的相对物体+ 添加 ARSession.TrackingStatus 以获取设备运动跟踪质量+ 添加 ARSession.State & ARSession.StateChanged 以查询 ARSession的状态+ 优化中心模式处理+ 一个session中可用的中心模式将由运行时选择的frame source来决定+ 空间地图可用在所有中心模式下使用- 删除 ARCenterMode.ExternalControl,其功能被 FrameSource.IsCameraUnderControl == false 所替代- 重命名 ARCenterMode.WorldRoot 为 ARCenterMode.SessionOrigin+ 优化初始化过程,尤其是首次使用体验+ 添加 EasyARController.Initialize & EasyARController.Deinitialize 接口以在启动后支持手动初始化* 如果EasyAR库文件未加载成功,会由错误提示* 改善许可证校验失败的弹出信息+ 优化构建过程,尤其是首次使用体验+ 如果插件包未由Unity包管理器正确导入,将会生成编译时和加载时错误+ 在pre-build 或post-build过程中如果出错,构建将会失败+ 在使用ARCore XR Plugin的时候,ARCore SDK的选择默认将会自动处理+ 添加在构建中检查 iOS usage description的功能* 构建中将不再使用 Assets/HiddenEasyAR* 优化稀疏空间地图的跟踪稳定性* SurfaceTrackerFrameFilter 可用与运动跟踪设备一同使用* 修复在某些情况下, target controller 事件可能会在组件销毁后触发的问题* 修复 MotionTrackerCameraDevice 的跟踪模式未正确设置* 相机的 field of view 现在将被设置成与投影矩阵一致
EasyAR Sense Unity Plugin Samples
+ 添加新样例 ARFoundation 以展示结合Unity AR Foundation 的使用+ 添加新样例 HuaweiAREngine 以展示结合华为AR Engine 的使用+ 添加新样例 Eyewear_Nreal_SpatialMap_Building 以展示如何在 Nreal 眼镜上使用空间地图+ 添加新样例 Eyewear_Nreal_ImageTracking_InWorld 以展示如何在 Nreal 眼镜上使用图像跟踪+ 添加新样例 MotionTracking_Fusion 以展示在单一场景中启动时自动选择以及运行时手动切换可用的 frame sources,以支持最多的设备并在支持的设备上启用每个AR 框架的独有功能* 修改 FrameRecording 样例以在运动跟踪功能可用时自动录制运动跟踪session* 重命名样例 ImageTracking_MotionExtend 为 ImageTracking_MotionFusion 以展示新的运动融合功能* 重命名样例 Eyewear_ImageTracking 为 Eyewear_DeviceHasNoTracking 以明确样例的用途* 重命名样例 MapLocalizing_Sparse 为 SpatialMap_Sparse_Localizing* 重命名样例 SpatialMap_Dense_BallGame 为 SpatialMap_Dense_BallGame* 重命名样例 SpatialMap_Sparse_ImageTarget 为 SpatialMap_Sparse_ImageTarget* 重命名样例 MapBuilding_Sparse 为 SpatialMap_Sparse_Building* 重命名样例 MapBuilding_Sparse_Dense 为 SpatialMap_Sparse_Dense_Building