ARFoundation

1. What is ARFoundation

In 2017, Apple and Google successively launched their respective AR development SDK toolkits ARKit and ARCore, corresponding to the iOS platform and Android platform AR development respectively. After the launch of ARKit and ARCore, it has greatly promoted the popularization and development of AR on the mobile terminal, bringing AR from the laboratory to the ordinary consumer scene. Since the current mobile phone operating system is mainly governed by the iOS and Android systems, ARKit and ARCore serve their own system platforms respectively, which means that software manufacturers must use ARKit to develop an iOS version if they want to develop a set of mobile AR applications. , Use ARCore to develop an Android version, which undoubtedly increases development time and cost.
  ARCore provides development kits for Android, Android NDK, Unity, and Unreal. ARKit officially only provides Xcode development kits, which also increases the learning cost of developers who use other tools for development. In this case, Unity has built an AR development platform, which is ARFoundation. This platform is built on ARKit and ARCore. Its purpose is to use Unity’s cross-platform capabilities to build a platform-independent AR development environment. In other words In other words, ARFoundation repackaged ARKit and ARCore, and automatically selected the appropriate underlying SDK version according to the user's release platform.

Therefore, ARFoundation is a collection of ARKit XR plug-in (com.unity.xr.arkit) and ARCore XR plug-in (com.unity.xr.arcore). Although both ARKit SDK and ARCore SDK are used in the end, because of Unity's re-encapsulation, Compared with professional platforms (such as ARKit plug-ins and ARCore SDK for Unity), the APIs that C# calls are slightly different.
  The goal of ARFoundation is not limited to ARKit and ARCore. Its goal is to build a unified and open AR development platform. Therefore, ARFoundation is very likely to incorporate other AR SDKs in the next step of development to further enrich the AR development environment. In further development, ARFoundation not only supports mobile AR devices, but also the development of wearable AR devices.
  From the above description, we can also see that ARFoundation does not provide the underlying AR development API. These platform-related APIs are provided by third parties such as ARKit and ARCore. Therefore, ARFoundation implements a specific third-party function more than native Late (it takes time for ARFoundation to integrate specific functions of a third-party SDK).
  Insert picture description here
Insert picture description here

2. The relationship between ARFoundation, ARCore and ARKit

ARFoundation provides a platform-independent scripting API and MonoBehaviour. Therefore, developers can use ARFoundation to use the core functions shared by ARCore and ARKit to build AR applications that are applicable to both iOS and Android platforms. In other words, this allows developers to develop an application once and deploy it to devices on two platforms without any changes.
  As mentioned earlier, ARFoundation will implement the functions of a certain underlying SDK later than the native ones. Therefore, if we want to develop functions that are not yet supported by ARFoundation, we can use the corresponding native SDK alone. At present, if we only develop for ARCore and want to obtain a complete feature set, Google provides ARCore SDK for Unity for Unity development; if we only develop for ARKit and want to obtain a complete feature set, Unity provides ARKit plug-in (Apple does not provide Unity's ARKit SDK development plug-in. After ARFoundation is developed, Unity will definitely not continue to maintain ARKit plug-ins).
  The relationship between ARFoundation, ARCore and ARKit is shown in the following figure:

Insert picture description here

3. Functions supported by ARFoundation

ARFoundation, ARCore, and ARKit are all undergoing rapid development. ARCore basically maintains an update frequency every two months. ARKit has also been iterated to ARKit3.0, and ARFoundaion, which is the upper layer of ARKit and ARCore, has also reached version v2.2.
  However, as mentioned above, the implementation of ARFoundation functions is a bit later than the underlying native API. The following table shows the comparison of ARFoundation, ARCore and ARKit functions and the development roadmap.
Insert picture description here

4. Functions supported by different platforms

Insert picture description here

Guess you like

Origin blog.csdn.net/qq_40513792/article/details/113971663