🎥
iOS LiDAR機能の誤差確認方法。パターン1
はじめに
簡単な確認方法として、三平方の定理を使いカメラから対象までの長さをa。
カメラから垂線を落とし床に着いた長さをc。
上記の床部分から、対象までの長さをb。とすると比較的簡単に検証の実測ができる。
一般手的にサシゴ、3,4,5と言われる暗記方法があるが、3と4は足し算な為、算数的に入れ替え可能である。(便宜上、5の二乗を例にしたが、確認用なので混乱注意)
これで現実側の実測方法が確立できたので次は、iOS側の実装を確認する。
iOS Sample Project Point Cloudの実装について
ソースコードは自分で読まないと意味がないので基本的にソース嫁(you should read source code)なのだが、自分用にコメントを残す。
私の知っているXcodeにはミニマップがなかったりしたがSwiftによる改善は、良くなってい。
- UIViewControllerにARSessionDelegateを継承しプライベートな関数Renderの宣言などを行なう。
- Metal実装に必要なデバイスの登録などを行う。
- super.viewWillAppearのアプリが表示を呼び出す直前の処理より、描画セッションの実行を行なう。
- Metal Tool Kit Viewを継承し、MTLViewを作成表示する。ここへコメントのような処理を記述しステレオビューなどへ活用予定。
- Metal描画実装部。
- GPUプログラム作法のデバイス登録などを行う。
- Metal描画実装部の塗り実装
- メタルシェーダーランゲージその1
- メタルシェーダーランゲージその2
凄く強力なXcodeのデバッガー
Vertex関数、Fragment関数、本サンプルでは実装していないがコンピュートカーネル関数のデバッグ機能が充実している。欲しい情報が普通に見れてデベロッパーの為のツールを実感する。
- 確認環境は、こんな感じ。
2.実機実行を行ない、真ん中下側のCapture GPU Frameのカメラアイコンを押してGPU用のデバッグを始める。
-
キャプチャーが終わるとウィンドが遷移する。色々見れそう。
-
Comamnd bufferを選択し詳細を確認する。
-
中央したのデバッグアイコンより、VertexシェーダーのDebugを行なうと、LiDARで取得したVertexのposition情報が取得できる。
緑色の四角がそれぞれVertexのpositionとなっている。
それぞれの単位などは、ソースコードで確認してほしい。
動画でドヤ
iOS LiDAR機能の誤差確認ライブ配信動画
Comming Soon
Discussion