WWDC Quick Look 💓 By SwiftGGTeam
Create 3D models for Quick Look spatial experiences

Create 3D models for Quick Look spatial experiences

元の動画を見る

ハイライト

Quick Look は、visionOS のボリューム ウィンドウに 3D モデルを表示し、システムが初期方向、地表、影を自動的に処理します。開発者は、USDZ モデルの実際のサイズ、ビジュアル品質、パフォーマンスの最適化に焦点を当てる必要があります。

主要内容

Quick Lookの3D表示方法

visionOS では、Quick Look によりボリューム ウィンドウに 3D モデルが表示されます。ボリュームには明確な境界があり、他のアプリケーションと並べて使用できます。ユーザーはボリュームの位置を自由に変更して、モデルをさまざまな角度から見ることができます。

01:14

システムの動作:

  • モデルは常にボリュームの中心に配置されます。
  • 最初に表示されるとき、ボリュームはコンテンツがユーザーに正面を向くように方向を調整します。
  • ユーザーはボリュームウィンドウバーを介してコンテンツの位置を変更できます
  • Quick Look はユーザーのズームに基づいてボリューム サイズを自動的に調整します

サイズとスケーリング

Quick Look では、metersPerUnit現実世界との比例関係を判断します。

02:32

スケーリング戦略:

  • 非常に小さなモデル (おもちゃの車など): コンテンツが確実に見えるように最小ズーム制限を課します。
  • 非常に大きなモデル: スペースの占有を避けるために上限を課します
  • 中型モデル: 100% 現実世界サイズで表示されます。
  • ユーザーはボタンをクリックするだけでいつでも現実世界の寸法を表示できます

グランドプレーンとシャドウ

Quick Look では、モデルの下に地表と影が自動的に表示され、ユーザーが地面に対するモデルのサイズと位置を理解するのに役立ちます。

03:56

モデルに独自のグランド プレーンとシャドウを追加しないでください。その部分はシステムに処理させます。

USDZ を作成する 4 つの方法

  1. 既存の USDZ を再利用: iOS 用に作成された USDZ ファイルは、visionOS で直接使用できます。
  2. プロフェッショナルな 3D 作成ツール: 3D コンテンツを作成し、USDZ にエクスポートします。
  3. RealityKit Object Capture API: 現実世界のオブジェクトをスキャンして 3D モデルを生成し、iOS と macOS をサポートします
  4. RoomPlan API: 2D または 3D の住宅計画を作成します

04:51

完全なワークフロー ケース

セッションでは、デザイナーのジェリーが部屋モデルを作成する完全なプロセスを示します。

  1. RoomPlan サンプル アプリを使用して部屋をスキャンする
  2. 3D レイアウトをプレビューするか、USDZ を Mac にエクスポートします
  3. 3D 作成ツールをインポートしてマテリアルとテクスチャを追加します
  4. Reality Composer Pro でプレビューおよび調整する

06:31

詳細

Reality Composer Pro でのプレビュー

Reality Composer Pro の右上隅にあるデバイス プレビュー ボタンを使用すると、デバイス上で Quick Look エフェクトを直接プレビューできます。

07:37

よくある質問: 初期モデルの向きが正しくありません。 Quick Look は右手座標系を使用するため、コンテンツ作成ツールまたは Reality Composer Pro で Y 軸の回転を調整して、最も興味深い部分がユーザーの方向を向くようにする必要があります。

ビジュアル品質の問題

Z-格闘(フラッシュオーバーレイ)

複数のオブジェクトを同じ場所にレンダリングすると、重なり合ってちらつきます。解決策: オーサリング ツールで重なっているジオメトリを削除するか、オブジェクトの間隔を増やします。

09:44

高周波法線マップ

高周波法線マップは、近距離または移動シーンでエイリアシング アーティファクトが発生する傾向があります。低周波法線マップを使用するか、それらを幾何学的詳細に置き換えることをお勧めします。

10:06

小さなオブジェクトのレンダリング

葉などの小さなオブジェクトをレンダリングする場合、システムは可変のラスター化レートで一貫してサンプリングを行わず、周囲の領域がちらつく原因となる場合があります。細かい幾何学的な詳細を透明テクスチャに保存し、より大きな三角形メッシュでレンダリングすることをお勧めします。

10:22

パフォーマンスの最適化

ファイルサイズ

  • ファイルが小さいほど、ダウンロードとロードが高速になります
  • 最終シーンで実際に使用されたリソースのみを含めます
  • 使用されなくなった古いバージョンのオーディオ、アニメーション、テクスチャを削除しました
  • 推奨されるファイル サイズは 25MB 未満に抑える必要があります

13:42

ジオメトリの最適化

  • 完全に隠れていて決して表示されない部分を削除します。
  • 小さなグリッドを単一の大きなグリッドに結合してシステム負荷を軽減します
  • 単一モデルの推奨: メッシュ パーツが 200 未満、頂点が 100,000 未満

15:01

テクスチャの最適化

  • 非カラー入力にはグレースケール画像を使用してメモリを節約します
  • 複数のグレースケール イメージを 1 つのテクスチャの異なるチャネルにパックします
  • 可能な限りテクスチャ読み込みの代わりにマテリアル定数値を使用します
  • 単一の PBR マテリアルの推奨最大テクスチャ サイズは 2K x 2K です。
  • チャネルごとに 16 ビットのテクスチャではなく 8 ビットを使用します
  • 最もリアリズムを高める領域にテクスチャ バジェットを投資します。

15:51

材料の最適化

  • 同じマテリアルを共有するメッシュ パーツを結合して、ロード時のマテリアルのコンパイルを軽減します
  • モデル全体に独立したマテリアルを使用するのではなく、小さな領域の透明またはワニスの効果に独立したマテリアルを使用します。
  • 透明度の重複を避け、透明なオブジェクトをリアルタイムでレンダリングするにはより多くの計算が必要です
  • ベイクされたライティングまたはライティングを必要としないパーツには、マテリアル X Unlit サーフェスを使用します

16:59

物理最適化

  • コライダーの総数を減らす
  • 移動しないエンティティ、または他のオブジェクトの影響を受けないエンティティは静的コライダーを使用します。

18:26

アニメーションの最適化

  • 頂点ごとのアニメーション ウェイトの数を制限する
  • 変形またはスキニングのアニメーションは、ジオメトリと同じ最適化ガイドラインに従います。

19:17

パーティクル システム

  • パーティクルエミッタの数を制限する
  • 画面上の粒子の数を最小限に抑えます
  • より単純な形状とスタイルで同様の効果を実現し、オーバードローを減らします

19:52

パフォーマンス分析ツール

統計パネル: Reality Composer Pro の統計パネルには、トライアングル数、テクスチャ メモリ使用量などの主要なメトリクスが表示されます。

11:55

RealityKit Trace: 個々のレンダリング フレームを詳細に分析し、パフォーマンスのボトルネックを特定し、推奨事項を作成できる、より高度なランタイム パフォーマンス分析ツールです。使用するには、Quick Look プロセスへの添付が必要です。

12:15

重要ポイント

  1. RoomPlan + Reality Composer Pro を使用してルーム プレゼンテーションをすばやく作成

    • やるべきこと: 部屋をスキャンして 3D モデルを生成し、マテリアルを追加してクイック ルックでプレビューします。
    • 価値がある理由: 部屋のインタラクティブな 3D 表現を数分で作成できます。専門的なモデリング スキルは必要ありません。
    • 開始方法: RoomPlan API を使用してスキャンし、USDZ をエクスポートし、Reality Composer Pro で方向をプレビューおよび調整します。
  2. 電子商取引商品用に最適化された USDZ プレビューを作成

    • 対処方法: 製品の 3D モデルを 25MB 以内に制御し、頂点数が 100,000 未満であることを確認します。
    • 価値がある理由: Quick Look を使用すると、ユーザーは実際の空間で製品を実際のサイズで表示できるため、購入に対する自信が高まります。
    • 開始方法: オブジェクト キャプチャでスキャンするか、3D ツールからエクスポートし、Reality Composer Pro の統計パネルでメトリクスを確認します。
  3. 細かいジオメトリを透明テクスチャに置き換えます

    • 内容: 葉などの小さなオブジェクトの幾何学的詳細を透明テクスチャにベイク処理します。
    • 価値がある理由: 頂点数を減らしながら、可変ラスタライズ レートによるちらつきの問題を回避します。
    • 開始方法: アルファ マップを使用してアウトラインを制御し、3D オーサリング ツールでローポリ モデルを作成します。
  4. マテリアルをマージしてコンパイルのオーバーヘッドを削減する

    • 内容: 同じマテリアルを共有するメッシュ パーツを結合します。
    • 実行する価値がある理由: カスタム マテリアルは、最初にロードするときにコンパイルする必要があります。マージ後はコンパイルの数が減ります。
    • 開始方法: 3D オーサリング ツールでマテリアルの割り当てを確認し、同じマテリアルのサブメッシュをマージします。

関連セッション

コメント

GitHub Issues · utterances