(A)ARFoundationは何ですか
2017年、アップル社とGoogle社は、独自のAR SDK開発キットARKitとArcoreの、それぞれのiOSプラットフォームとAndroidプラットフォームのARの開発を開始しました。ARKitとArcoreの打ち上げは、大幅に携帯端末の開発におけるARの普及に貢献した後、ARは、一般的な消費者の現場に研究室から持ってきました。現在の携帯電話のオペレーティングシステムは、主に2つのシステムのiOSとAndroidのルールで構成されているためで、ARKitとArcoreのは、それぞれのソフトウェアメーカーは、iOSのバージョンを開発ARKitを使用する必要があり、モバイルARアプリケーションを開発することを意味し、それぞれ独自のプラットフォームを提供しますArcoreのは、Androidのバージョンを開発し使用して、それは開発時間とコストが増加します。
Arcoreのは、Android、AndroidのNDK、ユニティ、Unrealの開発キットを提供し、ARKitの公式はまた、開発コストを学ぶために、開発者のための他のツールの使用が増加Xcode開発パッケージを提供します。この場合、AR Unityはプラットフォーム・アーキテクチャARKitとArcoreの上に、ARFoundationある開発プラットフォームを構築するために、その目的は、変更文は、ARのプラットフォームに依存しない開発環境を構築するためにユニティのクロスプラットフォーム機能を使用することです言って、ARKitとArcoreののARFoundationは再密封し、自動的にユーザーのパブリッシングプラットフォームに適した基本的なSDKのバージョンを選択しました。
したがって、ARFoundation ARKit XRは、最終用途ARKit SDKとArcoreのSDKが、やはりため、パッケージのための統一、プラグ(com.unity.xr.arkit)とArcoreのXRプラグ(com.unity.xr.arcore)に設定されています(例えば、プラグインやUnity用ARKit ArcoreのSDKなど)プロプラットフォームと比較して、C#のAPIコールは、わずかに異なっています。
ARFoundationの目標はARKitとArcoreのに限定されるものではなく、その目標は、ARの開発のための統一された、オープンなプラットフォームを構築することですので、さらにAR開発環境を豊かにするために、次のステップで他のARFoundation AR SDKの開発を含まれている可能性が高いです。さらなる発展では、ARFoundationはARモバイルエンドデバイスはまた、ウェアラブルARデバイスの開発を支援するサポートしていないだけ。
我々はまた、特定のサードパーティの機能にネイティブよりも達成ARFoundationそれがゆえ、提供などARKitやArcoreのよう第三者がこれらのプラットフォームに依存APIの基本となるAPIのARの開発を提供していない、上記の説明からARFoundationを見ることができます後半(サードパーティのSDKとの統合のARFoundation具体的な機能は、時間がかかります)。
(B)関係ARFoundationとのArcoreの、ARKit
ARFoundationは、iOSとAndroidプラットフォームのARアプリケーションはARFoundationを通じてArcoreのとARKit共通コア機能を使用するために、したがって、開発者が同時に構築することができ、プラットフォームに依存しないAPIやスクリプトMonoBehaviourを提供します。言い換えれば、それは開発者がアプリケーションをデバイスにデプロイすることができたら、2つのプラットフォームを変更する必要はありません開発することができます。
前述したように、ARFoundationは、基礎となるSDKの機能の実現がネイティブよりも遅くなります達成するために、私たちはまだ機能をサポートしていませんARFoundationを開発したい場合は、個別に対応するネイティブSDKを使用することができます。機能だけの完全なセットのためのArcoreの開発と希望のために、我々は、GoogleはUnityのためユニティ開発にArcoreのSDKを提供する場合、現在、;だけとARKit開発のための完全な機能セットを取得したい場合は、UnityはUnityシステム開発を提供しますARKitプラグ(ARFoundationが開発した後、AppleはUnityが確かにARKitプラグを維持していきません、プラグインを開発するためにARKit SDKのユニティを提供していません)。
Arcoreの、ARKitとARFoundation関係を以下に示すとおり
差ARFoundationとArcoreの、ARKit次の表に示すように:
SDK | はじめに説明 |
---|---|
ARFoundation | AR財団とArcoreのARKitネイティブAPIの統一パッケージに、オープンフレームの中に、そしていくつかの追加の便利なセッションのライフサイクル管理などの機能、および表示MonoBehaviour機能のための環境を提供しますが検出されました。 |
Unity向けGoogleのArcoreのSDK | SDKのAPIは、Arcoreの重要なAR機能のネイティブサポートを提供し、開発者の呼び出しを容易にするために、AndroidプラットフォームUnityにAPIを開きます。 |
シーツユニティプラグイン | 该插件是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アプリケーションは、仮想オブジェクトは、ARは、環境、リアルタイム追跡特徴点ソルバーにもであっても、中には何もレンダリングされない計算アプリケーション、ハードウェア、アプリケーションを計算するための高い要件です。携帯端末のハードウェアリソースの制約ので、いくつかの先進的なARアプリケーションは、のみ(CPUとGPUを含む)の最新のプロセッサ上で実行することができます。強力な独立した生態とAppleのハードウェアとソフトウェアの統合機能の恩恵を受けている間、私たちはARKit3ではなく、原因Androidシステムの深刻な断片化に多くの新機能を導入し、Arcoreのは、新しいAndroidのリリース後まで待つと同様の機能を提供することを期待します。
リファレンス
1、ユニティのハンドヘルドAR生態系ユニティのハンドヘルドARエコシステム