ARKitの仕組み
上の絵はARKitとアプリケーションとの関係を示したものになります。
それぞれ何かを説明すると
- Application: あなたが作るアプリケーション
- ARKit: ARを実現するためのフレームワーク
- SceneKit: 3Dデータを扱うためのフレームワーク
- SpriteKit: 2Dデータを扱うためのフレームワーク
- Metal: コンピュータグラフィックスを扱うためのフレームワーク
ARKitを利用すると、ApplicationはARKitより検知された画面上の平面情報等を受け取ることができます。
Applicationは受け取った情報(例えば平面の座標情報)を元にSceneKitかSpriteKit、Metalのいずれかの方法で画面上に独自の演出を行うことができます。
ARKit自身はAVFoundationとCoreMotionというフレームワークからビデオフレーム情報とデバイスセンサー情報を受け取ります。
単純なデバイスの向きだけであればジャイロセンサー情報だけで良いのですが、デバイスがどれだけ動いたかについては、加速度センサーを元に推定を行います。
ARKitは現実世界に仮想情報を組み合わせるために、まず目の前の空間を認識する必要があります。
最近流行りのデュアルカメラであれば奥行きを認識することが容易であるため空間を認識することも容易です。
ARKitはデュアルカメラではない端末でも動作することができます。それは、複数の地点のビデオフレームと画像認識技術を駆使しているためです。
ARKitはビデオフレームから得た画像より特徴点をいくつか設定します。
デバイスが別の地点に移動した時に先ほどの特徴点を見つけ出し、三角測量の要領で特徴点との距離を導き出します。
その様にすることで空間を認識していきます。Apple公式のメジャーアプリでも開始時に端末を動かす様に求められますが、これは上記の様な動作をすることで空間を認識しているためです。
デバイスが別の地点に移動した時に先ほどの特徴点を見つけ出し、三角測量の要領で特徴点との距離を導き出します。
その様にすることで空間を認識していきます。Apple公式のメジャーアプリでも開始時に端末を動かす様に求められますが、これは上記の様な動作をすることで空間を認識しているためです。
0 件のコメント:
コメントを投稿