第2章 ARKit 堤 修一/@shu223
サンプルコード:05_FeaturePoints
2.6.1 特徴点を可視化する
まずは「特徴点」がどのようなものか可視化してみましょう。
ARSCNViewのdebugOptionsプロパティ注21)にshowFeaturePointsを指定すると、
sceneView.debugOptions = [ARSCNDebugOptions.showFeaturePoints]
ARKitが抽出した特徴点が可視化されます(図2.9)。
図2.9 デバッグオプションshowFeaturePointsで特徴点を可視化
なお、本デバッグオプションは、ARWorldTrackingConfiguration利用時のみ有効です。
2.6.2 特徴点のIDや座標を取得する
ARSessionDelegateのsession(_:didUpdate:)メソッドは、フレームの更新があるたびに呼ばれます。この第2引数で渡されるARFrameオブジェクトが、最新フレームにおけるさまざまな情報を保持しています。
func session(_ session: ARSession, didUpdate frame: ARFrame)
ARFrameのrawFeaturePointsプロパティには、ARWorldTrackingConfigurationを利用したときの、当該フレームに含まれる特徴点の情報を保持する点群(Point Cloud)データがARPointCloud型で入っています。
var rawFeaturePoints: ARPointCloud? { get }
ARPointCloudはプロパティを2つ持つだけの非常にシンプルなクラスです。