Slide 1

Slide 1 text

Scaling Up PLATEAU PLATEAU のスケールアップ パフォーマンスの向上 , 新たな可能性 Better Performance, New Possibilities

Slide 2

Slide 2 text

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+)

Slide 3

Slide 3 text

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 の既存のシステムに統合することでした。 街のスケールを感じて飛び回ってみたかった。

Slide 4

Slide 4 text

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 では、京都市のデータ規模をすべて処理できません。

Slide 5

Slide 5 text

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: 各ゲームオブジェクトが重すぎます。 メッシュ頂点形式は不必要に重くなります。

Slide 6

Slide 6 text

A

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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 チャンクを単一のハイポリ メッシュにマージし ます。

Slide 9

Slide 9 text

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 バイト → 半分のサイズ!

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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 で非常に スムーズに動作します。

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

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」の変換 ● 動的都市変形シミュレーション ● インタラクティブなキャラクターベースのディゾルブとリ フォーム また、ビデオ ゲーム、仮想観光、教育などの実用的なアプリケー ションでも、都市の雰囲気や規模をより正確に再現できるように なりました。

Slide 16

Slide 16 text

Demo Video

Slide 17

Slide 17 text

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 プロジェクトの乗り物酔いを軽減し、プロセッサーの過熱を軽減することで 快適性を向上させることができま す。

Slide 18

Slide 18 text

Contact Email: [email protected] Twitter: @_sgrptl IG: @dokodemo.works Website: www.dokodemo.xyz