WWDC Quick Look 💓 By SwiftGGTeam
Create custom environments for your immersive apps in visionOS

Create custom environments for your immersive apps in visionOS

元の動画を見る

ハイライト

シーン全体の UV を 6 グループに再パックし、ライトマップをベイクして unlit マテリアルに切り替えれば、Vision Pro 上で最小 GPU コストで高品質な没入環境を提示できます。

主要内容

Vision Pro で没入型 App を作るとよく直面するジレンマ:環境が精巧になるほどフレームレートが下がる。リアルタイム光源、高解像度テクスチャ、複雑なジオメトリ——すべてが GPU 予算を消費。特にフルスクリーン没入空間では通常ウィンドウより描画面積がはるかに大きく、性能圧力が倍増します。

Apple の解法は「ベイク優先」:DCC ツール(Blender、Maya、Houdini)で光照、影、表面ディテールをテクスチャマップにベイクし、Reality Composer Pro にインポート後、マテリアルを unlit に切り替え——見た目はリアルタイムレンダリングと同じだが GPU は光照計算をしないため、フレームレート問題を根本解決。フローの要点:シーン UV を 6 グループ(Mid section、Ceiling、Floor、Front section、Rear section、Props)に再パック。各グループ 1 枚のテクスチャ。数百枚のテクスチャを 6 枚に、マテリアル数も激減。シーンが軽量で扱いやすくなります。

詳細

1. Blockout から始める(00:31

DCC ツールで単純ジオメトリ(box、plane)を使い空間プロトタイプを素早く構築。環境は実世界スケールで、人体モデルを参照に。ヘッドセット内でのスケール感は 2D 画面と異なるため、両方を行き来しながら微調整。

2. テクスチャ制作(03:44

コンクリート床を例に、4 ステップのフロー:

  • Adobe Substance Designer で手続きテクスチャを生成しベースに——高周波ディテールとシームレスタイリング
  • 実写素材を重ねる
  • 変化テクスチャを 2 層重ねて反復感を打破
  • 最終的に床全体を覆う 1 枚のテクスチャに合成

3. 光照設計(04:41

スポットライトで壁のアートと床を均等に照らし、屋根の天窓は昼間 HDRI で自然光。複数の光照方案を用意——サンプルは Light/Dark 2 モード。Dark は夜間 HDRI に切り替えスポット強度を上げる。ヘッドセット内の明るさ感はモニターと異なるため、実機で校正。

4. テクスチャベイクと UV 再パック(05:39

ベイクは物体表面の全情報(色、法線、光照、影)を 1 枚の画像に取り込み、再貼り付けすれば光線追跡なしでリアルな外観を再現。シーン全体の UV を 6 グループに再パック:

UV Groups:
  Mid section
  Ceiling
  Floor
  Front section
  Rear section
  Props

キーポイント:

  • 各グループ 1 つの UV Map、1 枚のテクスチャ——数百枚から 6 枚へ
  • GPU テクスチャサンプリングとメモリ占用を大幅削減
  • Reality Composer Pro 上でシーンが軽量・操作しやすく

5. Reality Composer Pro へエクスポート(06:29

Blender から USD エクスポート時、Root Prim 名を変更——この名前が Reality Composer Pro にそのまま入り、シーン階層に影響。インポート後、ベイクマテリアルをすべて unlit に:

Material workflow in Reality Composer Pro:
  1. Select baked material
  2. Change material type → "Unlit"
  3. Connect each UV map to corresponding material
  4. Disable "Apply Post Process" tone map
  5. For glass elements → assign PBR material
  6. Adjust Roughness + Opacity for glass effect

キーポイント:

  • ベイクマテリアルは unlit——GPU は光照を計算しない
  • Tone Map をオフにし DCC ツールでの見え方と一致
  • ガラスなど屈折/透明は PBR マテリアルを維持、ベイクしない
  • DCC 段階で命名を計画し、インポート後すぐ特定・修正可能に

6. 可視領域外のジオメトリは不要(02:47

視聴領域(viewing area)は床の円で示され、ユーザーはデフォルトで画面を向き、システム安全境界内で活動。この領域から見えない部分にジオメトリは作らない——削るのは面数とテクスチャで、直接レンダー負荷を減らす。画面手前に深度競合を起こす物体も置かない。

重要ポイント

  • 何をするか:没入型メディアプレイヤー向けベイク環境を制作。なぜ価値があるか:動画再生自体が GPU を大量消費。環境を unlit ベイクすれば予算をデコードと反射に回せる。始め方:Blender でシンプルな映写館、6 グループ UV ベイク。Apple の Destination Video サンプル参照。

  • 何をするか:Light / Dark 2 つの光照モードを提供。なぜ価値があるか:時間帯や気分で明るさの好みが異なる。低コストな体験向上。始め方:2 セットの光照テクスチャをベイク。実行時にマテリアルに紐づくテクスチャグループを切り替え。

  • 何をするか:遠景物体に減面(decimation)。なぜ価値があるか:奥のディテールはほぼ見えないが面数とテクスチャは消費し続ける。減面が最も直接的な最適化。始め方:Blender の Decimate Modifier で遠景を降面。視聴領域からの距離で目標面数を決定。

  • 何をするか:広い表面は手描きではなく手続きテクスチャ。なぜ価値があるか:手続きはシームレスタイリングが自然。パラメータ変更で反復でき、手描きより効率が高い。始め方:Substance Designer でコンクリート/木床などのベースマテリアルを生成。tilable テクスチャをエクスポートし実写ディテールを重ねる。

関連セッション

コメント

GitHub Issues · utterances