Upgrade to Pro — share decks privately, control downloads, hide ads and more …

No.3_Scaling Up PLATEAU

No.3_Scaling Up PLATEAU

PLATEAU AWARD 2023 ファイナリスト作品No.3
チーム名:Sagar Patel
作品名:Scaling Up PLATEAU

国土交通省都市政策課

February 27, 2024
Tweet

More Decks by 国土交通省都市政策課

Transcript

  1. About me Freelance graphics programmer, digital artist. Client works: •

    video games • theme parks • R&D • VR/AR/XR • consulting Art works: • real-time visuals installations • live performances with musicians and dancers • mixing medias and technologies Real-time graphics performance is super important: smooth framerate (60fps+) 自己紹介 フリーランスのグラフィックプログラマー、デジタルアーティスト。 クライアント作品: • ビデオゲーム • テーマパーク • 研究開発 • VR/AR/XR • コンサルティング アート作品: • リアルタイムのビジュアルインスタレーション • ミュージシャンやダンサーによるライブパフォーマンス • メディアとテクノロジーの混合 リアルタイム グラフィックス パフォーマンスは非常に重要です : スムーズなフレームレート (60fps+)
  2. Initial goal Use PLATEAU to load all of Kyoto city

    data to create a full scale Digital Twin. The plan was to integrate this data into my existing systems in Unity for making digital art. I wanted to feel the full scale of the city and fly around. 当初の目標 PLATEAU を使用して京都市のすべてのデータを読み込み、本 格的なデジタル ツインを作成します。 計画は、デジタル アートを作成するために、このデータを Unity の既存のシステムに統合することでした。 街のスケールを感じて飛び回ってみたかった。
  3. The Problems… Even with simplest settings: no textures for buildings

    + LOD1… • Very slow to load full Kyoto city data • Unity Editor used all available RAM (32GB) • Unity Editor used more than all VRAM (11GB+) • Unity Editor extremely slow, freezing, crashing • Saving full Kyoto city scene would create a scene file over 20GB • Extremely hard to enter Play mode, not usable Conclusion: default Unity settings + default PLATEAU Plugin cannot handle full Kyoto city data scale. 問題点… 最も単純な設定でも、建物のテクスチャなし + LOD1… • 京都市の完全なデータを読み込むのが非常に遅い • Unity エディターは利用可能な RAM (32GB) をすべて使 用しました • Unity エディターはすべての VRAM (11GB+) を超えて使 用しました • Unity エディターが非常に遅い、フリーズする、 クラッシュする • 京都市のシーン全体を保存すると、20 GB を超えるシー ン ファイルが作成される • プレイモードに入るのが非常に難しく、使用できません 結論: デフォルトの Unity 設定 + デフォルトの PLATEAU Plugin では、京都市のデータ規模をすべて処理できません。
  4. The Cause Cause of Unity Editor instability: A: Too many

    GameObjects For 1km2 area of Kyoto: 5000 buildings → 5000 GameObjects 1 GameObject → 20 triangles Mesh B: Each GameObject is too heavy. Mesh vertex format is unnecessarily heavy. 理由 Unity エディターが不安定になる原因: A: ゲームオブジェクトが多すぎます 京都の1km2のエリアの場合: 5000 の建物 → 5000 のゲームオブジェクト 1 ゲームオブジェクト → 20 三角形メッシュ B: 各ゲームオブジェクトが重すぎます。 メッシュ頂点形式は不必要に重くなります。
  5. A

  6. PLATEAU Unity Plugin uses default Unity Mesh creation. Per vertex

    data size: Position → 12 bytes Normal → 12 bytes Tangent → 16 bytes UV0 → 8 bytes UV3 → 8 bytes Total = 56 bytes Most of this data is unnecessary for my use case (and for most people). PLATEAU Unity プラグインは、 デフォルトの Unity Mesh 作成を使用し ます。 頂点ごとのデータ サイズ: Position → 12バイト Normal→12バイト Tangent → 16バイト UV0→8バイト UV3→8バイト 合計 = 56 バイト このデータのほとんどは、 私のユースケース には不要です 「そしてほとんどの人にとって」。 B
  7. The Solution How to fix these problems with minimum amount

    of code? Step 1: Modify “ConvertedMeshData.cs” with the new Unity Mesh API. Use custom Vertex Attributes and Format. Step 2: Once PLATEAU Plugin completes data load, using custom script to merge each GML chunk into a single high poly Mesh. 解決策 最小限のコードでこれらの問題を解決するにはどうすればよいでしょ うか? ステップ 1: 新しい Unity Mesh API を使用して「ConvertedMeshData.cs」を変更 します。 カスタムの「Vertex Attributes」と「Format」を使用します。 ステップ 2: PLATEAU プラグインがデータのロードを完了したら、カスタム スクリ プトを使用して各 GML チャンクを単一のハイポリ メッシュにマージし ます。
  8. Custom Vertex Attributes for Buildings: Position → 12 bytes Normal

    → 8 bytes Total: 20 bytes → less than half size! Custom Vertex Attributes for Terrain: Position → 12 bytes Normal → 8 bytes UV0 → 8 bytes Total: 28 bytes → half size! 建物のカスタム「Vertex Attributes」: Position → 12バイト Normal→8バイト 合計: 20 バイト → 半分以下のサイズ! 地形のカスタム「Vertex Attributes」: Position → 12バイト Normal→8バイト UV0 →8バイト 合計: 28 バイト → 半分のサイズ!
  9. Modified PLATEAU Unity Plugin Custom script to merge Meshes per

    GML block Save Merged Meshes as .asset files ステップ 1 ステップ 2 ステップ 3 In Unity Editor - Unityエディターで Use in any Unity project あらゆる Unity プロジェクトで使用 Export as .fbx files ステップ 4 Use in Unreal Engine Unreal Engineで使用 UE5 → use Nanite UE5 --> Nanite を使用する Buildings Data Workflow
  10. The Results Unity HDRP tests: ray traced shadows + GI,

    volumetric lighting + cloud system, dynamic time of day. Kyoto city: 15km view distance, processing 60 million triangles per frame, roughly 60fps at 1080p on RTX 2080Ti. Build size is 3.9GB Kanazawa city: much smaller data, smooth 1440p at 60fps. --------------------------------------------------------------------------- UE5 Kyoto city test using fbx workflow using Nanite + Lumen + ray tracing features. More sharp/clean image quality than Unity, runs very smooth 60fps at 1080p. 解決策 Unity HDRP テスト: レイ トレーシング シャドウ + GI、ボリューム ライティング + クラウド システム、動的時刻。 京都市: 表示距離 15km、フレームあたり 6,000 万個の三角形 を処理、RTX 2080Ti の 1080p で約 60fps。 ビルドサイズは3.9GBです 金沢市: データがはるかに小さく、60fps でスムーズな 1440p。 ---------------------------------------------------------------------------- Nanite + Lumen + レイトレーシング機能を使用した fbx ワーク フローを使用した UE5 京都市テスト。 Unity よりも鮮明でクリーンな画質で、1080p で 60fps で非常に スムーズに動作します。
  11. New Possibilities Using PLATEAU data as dynamic geometry using my

    compute shader system for digital art projects. Explored concepts: • “City A” ←→ “City B” transformations at 1:1 scale • Dynamic city deformation simulation • Interactive character based dissolve and reform Also, practical applications like video games, virtual tourism, education,etc can now much better replicate the feeling and scale of cities. 解決策 デジタル アート プロジェクト用のコンピューティング シェーダー システムを使用して、PLATEAU データをダイナミック ジオメトリと して使用します。 検討された概念: • 「都市A」←→「都市B」の変換 • 動的都市変形シミュレーション • インタラクティブなキャラクターベースのディゾルブとリ フォーム また、ビデオ ゲーム、仮想観光、教育などの実用的なアプリケー ションでも、都市の雰囲気や規模をより正確に再現できるように なりました。
  12. Performance benefits everyone The improvements described in “Scaling up PLATEAU”

    have benefits for almost any PLATEAU project. This can help everyone by: • Editor workflow speedup and stability • File size reduction (need 2x less storage) • Less RAM/VRAM usage (need 2x less specs) • Higher frame rate • Less energy usage (longer battery life, less heating) For example, this could help reduce motion sickness in a VR/AR/XR/AVP project by providing more stable framerate and improve comfort by reducing processor overheating. パフォーマンスは皆に役に立つ 「PLATEAU のスケールアップ」で説明されている改善点は、ほぼすべての PLATEAU プロジェクトにメリットがあります。 これにより、次のことが誰にとっても役立ちます : • エディターのワークフローの高速化と安定性 • ファイル サイズの削減 (必要なストレージが 2 分の 1) • RAM/VRAM の使用量が少ない (必要なスペックが 2 分の 1) • より高いフレームレート • エネルギー使用量の削減 (バッテリー寿命の延長、発熱の軽減 ) たとえば、より安定したフレームレートを提供することで VR/AR/XR/AVP プロジェクトの乗り物酔いを軽減し、プロセッサーの過熱を軽減することで 快適性を向上させることができま す。