ハイライト
Area mode は bounding box 検出をスキップし、
startCapturingを直接呼ぶだけで屋外エリアスキャンに入れます。Mac 側の Quad Mesh と 16K テクスチャと組み合わせれば、映画品質の 3D モデルを生成できます。
主要内容
Object Capture の従来のオブジェクトモードでは、移動可能な物体の周囲を一周し、bounding box を設定し、各面を撮影する必要がありました。机の上の花瓶には向いていますが、屋外の地形、壁に取り付けたレリーフ、回れない岩壁には不向きです——一周できないし、斜面全体を裏返して底面をスキャンすることもできません。
Area mode はこうしたシナリオ向けに設計されています。bounding box 検出を省き、照準を「ブラシ」に変えます。表面の上をゆっくり動かすと、システムが自動的に連写して重ね合わせます。撮影後は新しい camera pose visualization でカバレッジを確認し、現場を離れる前に十分なデータを取得できます。モデルは iPhone 上で直接生成するか、Mac にエクスポートしてより高品質な処理が可能です。
Mac では、今年 Quad Mesh 出力と最大 16K テクスチャが追加されました。Quad Mesh には Blender などの DCC ツールでの UV 編集やリギングに適した edge loop が含まれます。16K テクスチャは大規模シーンや VFX オフライン レンダリングのディテールを大幅に向上させます。統合メモリに余裕のある Mac では最大 2000 枚の画像を処理できます。新しい Data Loading API により、深度・重力などのメタデータ付き PhotogrammetrySample を数行で読み込み、カスタム objectMask を付けて前景のノイズを除外できます。
詳細
iOS:Area Mode への移行
昨年のフローは start -> startDetecting(bounding box 設定)-> startCapturing でした。Area mode には新 API は不要です。startDetecting をスキップして startCapturing を呼ぶだけでエリアスキャン UI に入ります(03:41)。
また、新しい hideObjectReticle 修飾子でオブジェクトモードの照準枠を非表示にし、最初からエリアモードであることをユーザーに明示します(04:06)。
撮影の注意点:
- 屋外では曇天か日陰を選び、硬い影を避ける
- 規則的な経路をゆっくり移動し、画像の重なりを確保する
- 複数の高さから複数行を撮影し、あらゆる角度をカバーする
- 6 フィート超のエリアは Mac で高精度処理を推奨
- iPad Pro 2021、iPhone 12 Pro 以降をサポート
Mac:Quad Mesh と 16K テクスチャ
Mac の新 Sample App は、画像フォルダの選択と出力タイプ設定のためのビジュアル UI を提供します。今年追加された 2 つの出力タイプ:
- Quad Mesh:アーティスト向け edge loop を持つ四角形メッシュ。UV 編集、リギング、アニメーションに適する
- 16K テクスチャ:カスタム detail level 最大 16K。大規模シーンとオフライン レンダリングで効果が大きい(05:19)
統合メモリに余裕のある Mac では最大 2000 枚の画像を処理可能(05:37)。
Data Loading API:カスタム Mask と Pipeline
撮影背景が制御不能だったり、動的な遮蔽物(被写体を覆う手など)がある場合、各画像に objectMask を付けて、どのピクセルが前景かを再構成アルゴリズムに伝えられます。今年の新 API で、読み込み処理が数百行から数行に簡略化されます:
func loadSampleAndMask(file: URL) -> PhotogrammetrySample? {
do {
var sample = try PhotogrammetrySample(contentsOf: file)
sample.objectMask = try loadObjectMask(for: file)
return sample
} catch {
return nil
}
}
キーポイント:
PhotogrammetrySample(contentsOf:)は新しい同期イニシャライザで、画像ファイルから RGB、深度マップ、重力ベクトルなど利用可能なメタデータを自動読み込み(08:30)sample.objectMaskプロパティはカスタムビットマップ mask を受け取り、干渉領域を再構成から除外- 失敗時は
nilを返し、後続のcompactMapが自動的にスキップ
func createCustomPhotogrammetrySession(for images: [URL]) -> PhotogrammetrySession {
let inputSequence = images.lazy.compactMap { file in
return loadSampleAndMask(file: file)
}
return PhotogrammetrySession(input: inputSequence)
}
キーポイント:
images.lazyにより全画像を一度にメモリへ載せず、session 反復時に 1 枚ずつ読み込む(09:30)compactMapが読み込み失敗のnil要素を自動無視- 返された
PhotogrammetrySessionは標準 request で処理可能
Object Capture で撮影した画像には、カスタムバックエンド再構成パイプラインや高度な可視化のための camera transform、intrinsics matrix、キャリブレーションデータも含まれるようになりました(10:35)。
重要ポイント
-
何を作るか:屋外 3D キャプチャ app。Area mode でユーザーがハイキングや旅行中に岩石テクスチャ、庭の地形、壁のレリーフを iPhone でスキャンし、visionOS Quick Look で閲覧できる 3D お土産を生成。なぜ価値があるか:既存 3D スキャン app の多くはオブジェクトモードのみ——屋外の大規模シーンは未開拓市場。どう始めるか:Apple 公式 Sample App をベースに
startDetecting呼び出しを削除し、hideObjectReticleを追加してエリアモードを組み込む。 -
何を作るか:EC/不動産向け 3D 展示パイプライン。Mac で Quad Mesh 出力 + 16K テクスチャで撮影データを処理し、Blender で編集可能な高品質モデルを生成。商品展示や室内プレビューに使う。なぜ価値があるか:Quad Mesh の edge loop でアーティストが UV 再配置とリギングを迅速に行え、16K テクスチャで大規模シーンのディテールが潰れない。どう始めるか:Mac Sample App で Quad Mesh 出力タイプを選択し、detail level を 16K に設定、USDZ をエクスポート後 Reality Composer Pro で最終調整。
-
何を作るか:カスタム再構成パイプライン。Data Loading API で camera transform と intrinsics 付き PhotogrammetrySample を読み込み、独自バックエンド再構成や SLAM パイプライン、撮影品質可視化ツールを構築。なぜ価値があるか:camera transform と intrinsics は以前取得不可——今は全フレームに含まれ、撮影カバレッジヒートマップやリアルタイム再ローカライズなど高度な機能が可能。どう始めるか:
PhotogrammetrySample(contentsOf:)で画像を読み込み、cameraTransformとintrinsicsMatrixを取得し、SwiftUI で 3D カメラポーズ可視化を描画。
関連セッション
- Optimize your 3D assets for spatial computing — メッシュ・マテリアル・テクスチャのベストプラクティスを含むエンドツーエンド 3D アセット最適化ワークフロー
- Explore object tracking for visionOS — 実世界の物体を visionOS 空間アンカーに変換。Object Capture と補完関係
- What’s new in Quick Look for visionOS — Area mode で生成した USDZ モデルを Quick Look でプレビュー・操作
- Compose interactive 3D content in Reality Composer Pro — Reality Composer Pro で Object Capture 出力 3D アセットを組み合わせ・編集
コメント
GitHub Issues · utterances