ARFoundation road - Overview

Copyright: David Wang original AR / MR articles for study and research purposes and not for any commercial purposes, shall not be reproduced without authorization! https://blog.csdn.net/yolon3000/article/details/91445797

(A) What is ARFoundation

  2017, Apple Company and Google Inc. have launched their own AR SDK Development Kit ARKit and ARCore, respectively iOS platform and the Android platform AR development. After ARKit and ARCore launch, greatly contributed to the popularity of AR in the development of mobile terminals, the AR brought from the laboratory to the general consumer scene. Because of the current mobile phone operating system mainly consists of two systems iOS and Android rule, ARKit and ARCore respectively serve each their own platform, which means that software manufacturers to develop a mobile AR applications must use ARKit develop a version of iOS using ARCore develop a version of Android, it will increase the development time and cost.
  ARCore provides Android, Android NDK, Unity, Unreal Development Kit, ARKit official only provides Xcode development package, which also increases the use of other tools for developers to learn the development costs. In this case, AR Unity to build a development platform, which is ARFoundation, on top of the platform architecture ARKit and ARCore, its purpose is to use Unity's cross-platform capabilities to build a platform-independent development environment of AR, change sentence saying, ARFoundation of ARKit and ARCore were resealed and automatically select the appropriate underlying SDK version to the user's publishing platform.

  Thus, ARFoundation ARKit XR is set plug (com.unity.xr.arkit) and ARCore XR plug (com.unity.xr.arcore), although the ultimate use ARKit SDK and ARCore SDK, but again because of the package's sake Unity, compared with the professional platform (such as plug-ins and ARKit ARCore SDK for Unity), C # API call is slightly different.
  ARFoundation goal is not limited to ARKit and ARCore, its goal is to build a unified, open platform for the development of AR, therefore, is likely to include other ARFoundation AR SDK development in the next step to further enrich AR development environment. In a further development, ARFoundation not only supports AR mobile end devices will also support the development of wearable AR device.
  We can also see from the above description, ARFoundation it does not provide the underlying API AR development of these platform-dependent API by a third party such as ARKit and ARCore provide, therefore ARFoundation achieve than native to a particular third party functions late (ARFoundation the specific function of a third-party SDK integration takes time).

Here Insert Picture Description

(B) the relationship ARFoundation and ARCore, ARKit of

  ARFoundation provides a platform-independent API and scripting MonoBehaviour, therefore, developers can build simultaneously for iOS and Android platforms AR application uses ARCore and ARKit common core functionality through ARFoundation. In other words, it allows developers to develop once applications can be deployed to the device two platforms do not have to make any changes.
  As mentioned earlier, ARFoundation to achieve the realization of a function of the underlying SDK will be late than the native, so if we want to develop ARFoundation does not yet support the feature, you can use the native SDK corresponding individually. Currently, if we only for ARCore development and hope for a complete set of features, Google provides ARCore SDK for Unity to Unity development; if only for ARKit development and want to get the full feature set, Unity provides for Unity development ARKit plug (Apple does not provide Unity of ARKit SDK to develop plug-ins, after ARFoundation developed, Unity certainly will not continue to maintain ARKit plug).
  ARFoundation relationship with ARCore, ARKit as shown below:
Here Insert Picture Description
  difference ARFoundation and ARCore, ARKit as shown in the following table:

SDK Introduction Description
ARFoundation The AR Foundation and ARCore ARKit native API into a unified package, into the open frame, and provides some additional useful functions, such as the Session life cycle management, and environment for display MonoBehaviour function has been detected.
Google ARCore SDK for Unity The SDK API provides native support for the ARCore important AR function, and open the API to Android platform Unity in order to facilitate the developer calls.
Sheets Unity Plugin 该插件是Unity公司开发的ARKit Unity插件,用于在Unity中构建ARKit应用,它在Unity中公开了C#语言的ARKit Objective-C API,以便开发者调用,该插件还提供一些辅助功能,可以利用兼容iOS设备的前置和后置摄像机。

(三)、ARFoundation支持的功能

  ARFoundation与ARCore、ARKit都正处于快速发展中,ARCore基本保持每两个月进行一次更新频率,ARKit也已经迭代到了ARKit3.0,作为ARKit与ARCore上层的ARFoundaion也已经到了v2.2版。
  但如前文所说,ARFoundation功能的实现要比底层的原生API稍晚一些,下表展示了ARFoundation,ARCore和ARKit功能对比和开发路线图。

支持功能 AR Foundation ARCore ARkit
垂直平面检测
水平平面检测
特征点检测 √ +支持特征点姿态
光照估计 √ +Color Correction √ + Color Temperature
射线测试(Hit Testing,对特征点与平面的射线碰撞测试)
图像跟踪
3D物体检测与跟踪 -
环境光探头(Environment Probes) -
世界地图(World maps) -
人脸跟踪(识别、姿态、网格和形状混合) √(iPhoneX 及更高型号)
云锚点(Cloud Anchors) -
远程调试(Editor Remoting) 开发中 √-Instant Preview √ -ARKit Remote
模拟器(Editor Simulation) - -
LWRP支持(支持使用ShaderGraph) 开发中 开发中
摄像机图像API -
人体动作捕捉(Motion capture) - √(iPhoneX 及更高型号)
人形遮挡(People occlusion) - √(iPhoneX 及更高型号)
多人脸检测 - √ (iPhoneX 及更高型号)
多人协作(Collaborative session) - √ (iPhoneX 及更高型号)
多图像识别 √(iPhoneX 及更高型号)

  AR applications are compute-intensive applications, high requirements for computing hardware, applications, virtual objects do not render anything even in, AR is also on the environment, real-time tracking feature points solver. Since the mobile terminal hardware resource constraints, some advanced AR application can only be run on the latest processors (including the CPU and GPU). While benefiting from strong independent ecological and Apple hardware and software integration capabilities, we introduced many new features in ARKit3 but due to the severe fragmentation of the Android system, ARCore expected to provide similar functionality to wait until after the new Android release.

references

1、Unity’s Handheld AR Ecosystem Unity’s Handheld AR Ecosystem

Guess you like

Origin blog.csdn.net/yolon3000/article/details/91445797