50.4K Views
February 26, 24
スライド概要
第一回 Unreal Engine KYUSHU LT会の講演資料です。Shadow Methodを選ぶ際の注意点とLocal Height Fog機能を紹介しています。
Unreal Engineを開発・提供しているエピック ゲームズ ジャパンによる公式アカウントです。 勉強会や配信などで行った講演資料を公開しています。 公式サイトはこちら https://www.unrealengine.com/ja/
Unreal Engine 5 グラフィックス関連Tips Epic Games Japan Software Engineer, Developer Relations Yutaro Sawada
内容 ・Shadow Methodを 選ぶ際の注意点 ・Local Height Fog
Shadow Methodを 選ぶ際の注意点
2つの設定 r.Shadow.Virtual.Enable : 1でVirtual Shadow Maps、0だとShadow Maps
注意点 - デフォルト設定 UE4からUE5に移行した場合 UE5で新規作成した場合 Shadow Maps Virtual Shadow Maps
大きな違い Shadow Maps ・UE4からの手法 ・ライトやメッシュの可動性によって 様々な手法で影を表現 ・静的ライティング等の 組み合わせが可能 ・セットアップにもよるが比較的軽量 Virtual Shadow Maps ・Virtual Textureの技術を活用し 広域かつ高品質な影を表現可能 ・効率的にキャッシュシステムを 活用した場合非常に高速 ・メモリ消費量は多くなりがち
VSM - 活用
Virtual Shadow Mapsの概要 必要な場所に必要な解像度のTextureを利用するVirtual Textureを応用 高解像Shadow Mapを利用 Page 128 × 128
Virtual Shadow Mapsのメリット・デメリット ライトの種類問わずに綺麗な影描画が可能 デフォルト設定でPoolSize(使用するメモリ)が512MB。メモリや負荷が高め
VSMの挙動や設定について Unreal Engine 5 における レンダリング & デバッグTips https://www.docswell.com/s/EpicGamesJapan/5Q8Q67-2023-12-21-185240
Shadow Maps - 動的Shadow メモリの考慮や目標とする品質によっては、従来のShadow Mapsを選択する場合も ・Level全域で動的Shadowを表現するためのDirectional Lightの設定を紹介
Directional Light - Shadow Maps ・Directional Lightはどこまでも影響範囲があるため、 視点からの距離で領域を決め、領域を分割してShadowMapを作り、 複数枚に分けることで広範囲なShadowMapを作成 -> Cascade Shadow Maps(CSM) 1枚のShadow Depth解像度 r.Shadow.MaxCSMResolution = "2048"
Directional Light - Memory ・Num Dynamic Shadow Cascade:4 4枚分の解像度 * R16 Buffer(16bit) 2048 * 4 * 2048 * 16 / 8 / 1024 / 1024 = 32MB ・Num Dynamic Shadow Cascade:3 3枚分の解像度 * R16 Buffer(16bit) 2048 * 3 * 2048 * 16 / 8 / 1024 / 1024 = 24MB
Directional Light - Num Shadow Cascade
Directional Light - Shadow Distance
Directional Light - Shadow Distance ・範囲を広くすると、それだけ対象のオブジェクトも増える -> 負荷増加 ・高品質に描くためには解像度が必要になる -> メモリが増える ・目指す品質目標に対してバランスを取る事が必要 ・近距離だけ動的Shadowで それ以上は簡易的なShadowを表示したい -> Distance Field Shadow や Contact Shadow
Directional Light - Distance Field Shadow ・プロジェクト設定からDistance Fieldの有効化が必要(日本語設定名:メッシュ距離フィールド) 有効化するとメッシュごとの必要なメモリは増える ※ソフトウェアLumenを利用する場合にも使用
Directional Light - Distance Field Shadow
Directional Light - 広域なShadow ・CSMで広域を見せたい場合は距離などの調整が必要 静的なShadowで問題なければDistance Field Shadowを利用し表現が可能
Directional Light - Contact Shadow ・品質をそこまで求めない場合はContact Shadowも利用可能(Screen Space Shadow) Distance Fieldsを必要としないため手軽に利用することが可能
Shadow Methodsまとめ ・目指す品質や動作要件によっては従来のShadow Mapsが選択肢に入ることも ・どちらの方法の場合も、それぞれ最適化が必要になりますので 必要に応じて資料等をご確認ください https://www.docswell.com/s/EpicGamesJapan/5Q8Q67-2023-12-21-185240 https://qiita.com/EGJ-Yutaro_Sawada/items/2a8a1467ebaaa9795fe0
Local Height Fog
UEのHeight Fogについて Exponential Height Fog Volumetric Fog 基本的には全体で調整 Volumetric Fogはローカルで調整することも可能ですが、 Niagara等でVolumetric Materialの作成が必要
Exponential Height Fog 高さをベースとする描画 位置により変化
Exponential Height Fog
Volumetric Fog
Local Height Fog 局所的に配置、コントロールが可能
Local Height Fog エディタの+アイコンから ビジュアルエフェクト -> Local Height Fog
Local Sphere Fog
Local Height Fog - 各種設定(1)
Local Height Fog - 各種設定(2)
Local Height Fog - 複数置いた場合 Instanced描画となっており 複数置くことも可能
Local Height Fog - まとめ これまでのFogは全体で調整 →Local Height Fogを活用することで より柔軟な調整が可能に
まとめ