さてさて、さきほどの続きであります。はたしてうさぎを 3D にできるのか!?
Xcode13 beta は手に入りましたね?
Xcode13 のインストール
はい。Xcode を入れます。
これは言うまでもないのでばっさり手順割愛。
Apple のサンプルコードの入手
Creating a Photogrammetry Command-Line Appから、ファイルをダウンロードしてきてください。
解凍して、プロジェクトを開きましょう。
開いたら、signingまわりをなんとかして・・・
このプロジェクトはコマンドライン引数を取るので、ここから設定します。
第1引数が、3D化したい写真が大量に入ったディレクトリのパス。
第2引数が、3D化した結果のファイル名。
・・・ん?
写真が必要なんですね。撮りましょう。
※ちなみに、あとから気がつきましたが
サンプル写真が、当該プロジェクトの Data/Rock36Images.zip というところにありました。これを使って試せるようです。まぁ、私はこれを使っても -11 エラーでしたけど。。。
3Dにしたい対象物の写真を撮る
私が使ったのは iOS14.6 の iPhone X。これで写真を撮ってゆきます。
別に LiDAR とかいらないらしい。
RealityKit オブジェクトの作成では、iPhone や iPad のカメラ、DSLR やミラーレス カメラ、さらにはカメラを搭載したドローンなど、あらゆるデジタル カメラでキャプチャした画像を受け入れます ・・・Google翻訳したこちらより引用
・・・だそうな。
具体的な撮り方ですが、
物体の上から、物体を舐め回すように眺めながら撮ってゆきます。
このあたりの正確な作法はこちらにありますが、いまは物体をテキトーに撮っていきます。
必要とするファイルの形式すらもよくわからず、はじめは .JPG で、二回目は .HEIC で撮ってます。これがいいのか悪いのかはよくわかっていない(なぜなら後述のエラーで進まないから)。
今回は、こんな感じで念入りに撮りました。
撮った写真は、mac にディレクトリを作って移します。
今回は /Users/junakita/Desktop/rabbit2 に置いたので、Xcode で指定した第1引数も /Users/junakita/Desktop/rabbit2 にしてあります。
プロジェクトを実行
さてさて、Xcode に戻って実行すると・・・
変なエラーが出ています。Using configuration: Configuration(isObjectMaskingEnabled: true, sampleOverlap: RealityFoundation.PhotogrammetrySession.Configuration.SampleOverlap.normal, sampleOrdering: RealityFoundation.PhotogrammetrySession.Configuration.SampleOrdering.unordered, featureSensitivity: RealityFoundation.PhotogrammetrySession.Configuration.FeatureSensitivity.normal)
2021-06-08 22:36:04.244052+0900 HelloPhotogrammetry[850:21464] Metal API Validation Enabled
Error creating session: cantCreateSession("Native session create failed: CPGReturn(rawValue: -11)")
Program ended with exit code: 1
・・・これがちっとも解決しません。
ドキュメントを見ても -11 の意味がわからず、
Twitter を見ても -11 の意味がわからず、
ビルドしてからターミナル経由で呼び出しても変わらず。
※ちなみに、このサンプルのコマンドライン引数はこうです
junakita@akitajunnoMacBook bin % ./HelloPhotogrammetry
Error: Missing expected argument '<input-folder>'
OVERVIEW: Reconstructs 3D USDZ model from a folder of images.
USAGE: hello-photogrammetry <input-folder> <output-filename> [--detail <detail>] [--sample-overlap <sample-overlap>] [--sample-ordering <sample-ordering>] [--feature-sensitivity <feature-sensitivity>]
ARGUMENTS:
<input-folder> The local input file folder of images.
<output-filename> Full path to the USDZ output file.
OPTIONS:
-d, --detail <detail> detail {preview, reduced, medium, full, raw} Detail of output model in terms of mesh size and texture size . (default: nil)
-l, --sample-overlap <sample-overlap>
sampleOverlap {normal, low} It should be set to `low` if there is low overlap between images captured nearby in space.
-o, --sample-ordering <sample-ordering>
sampleOrdering {unordered, sequential} Setting to sequential may speed up computation if images are captured in a spatially sequential
pattern.
-f, --feature-sensitivity <feature-sensitivity>
featureSensitivity {normal, high} Set to high if the scanned object does not contain a lot of discernible structures, edges or textures.
-h, --help Show help information.
・・・ということで、きょうはこれで袋小路のままで終わりになりそうな予感です。
0 件のコメント:
コメントを投稿