リアルタイム レイトレーシング

Unreal Engine のレイトレーシングの概要です。

Windows
MacOS
Linux

レイ トレーシング手法は、フォトリアリスティックなイメージをレンダリングするために、映画、テレビ、ビジュアライゼーション分野で長い間使用されてきましたが、各イメージやフレームをレンダリングするためには強力なコンピュータと時間が必要です。映画やテレビでは、高品質の画像シーケンスをレンダリングするために数時間から数日かかることがありますが、その結果として現実の物体とシームレスにブレンドできるリアルな 3D コンテンツを生み出すことができます。建築ビジュアライゼーション系の企業では、レイ トレーシングにより自動車業界向けの美しいレンダリングを作成したり、リアルな表現が完成したときに密集した住宅やオフィス ビルディングがどのような外観になるのかを表示したりすることができます。  

Unreal Engine 4 (UE4) のパワーを リアルタイム レイ トレーシング (RTRT) と組み合わせることにより、多数のオフライン レンダラに匹敵する絶妙なライティング エフェクトによるインタラクティブ体験をリアルタイムで生み出すことができます。レイ トレーシング エフェクトでは、ライトによるソフト シャドウイング、正確なアンビエント オクルージョン (AO)、インタラクティブ グローバル イルミネーション、反射などが生み出されて、さらに自然に見えます。

Epic Games Launcher で入手可能な建築インテリアのサンプル プロジェクトでのレイ トレーシング機能のリアルタイム レンダリング

Unreal Engine のレイトレーシング

UE4 のレイトレーシングは 2 つの技法で構成されています。

  • レイ トレーシング機能を既存のラスタ エフェクトと組み合わせたハイブリッド レイ トレーサー

  • リファレンス レンダリングを生成するための パス トレーサー

レイトレーサー

レイ トレーサーは、シャドウ、AO、反射、透過処理、グローバル イルミネーションすべてに対して、プロジェクト内でリアルタイムにレイ トレースによる結果が得られようにします。レイ トレーサーは、パス トレーサーのグラウンド トゥルース結果に知覚的に近いノイズ除去アルゴリズムと組み合わされた、少ない数のサンプルを使用します。

パス トレーサー

パス トレーサーは、偏りのない物理ベースのパス トレーサーであり、リアルタイム レイ トレースによるシーンより高品質のレンダリングが可能です。パス トレーサーは、時間の経過とともにサンプルを収集することでオフライン レンダラと同じように機能し、ムービー レンダー キュー を使用して最終結果を出力するために使用できます。また、インタラクティブ ビューポート モードは、従来のリアルタイム レンダリングとレイ トレーシング機能とのグラウンド トゥルース比較に役立ちます。

詳細については、「パス トレーサー」を参照してください。

プロジェクトでレイトレーシングを有効にする

次のステップに従って、プロジェクトでレイトレーシングのサポートを有効にします。 

システム要件

オペレーティング システム

Windows 10 RS5 (Build 1809) or later

Windows のビルド番号を調べるには、Windows の検索ボックスに「winver」と入力します。

GPU

DXR をサポートする NVIDIA RTX および一部の GTX シリーズ カード (最新のデバイス ドライバを使用)

詳細については、NVIDIA の こちらのページ を参照してください。|

Unreal Engine のバージョン

4.22 以降

Unreal Engine レンダリング パス

ディファード パス (後述の「サポートされている機能」を参照してください。)

DirectX12 とレイトレーシングを有効にする

  1. メイン メニューの [Edit (編集)] メニューから [Project Settings (プロジェクト設定)] を開きます。

  2. [Platforms (プラットフォーム)] > [Windows (ウィンドウ)] で、[Default RHI (デフォルト RHI)] ドロップダウンで [DirectX 12] を選択します。

    EnableDX12Mode.png

  3. [Engine (エンジン)] > [Rendering (レンダリング)] で、[Ray Tracing (レイトレーシング)] をオンにします。

    ProjectSetting_EnableRT

    レイトレーシングを有効にするには、プロジェクトで Support Compute Skincache (スキンキャッシュの計算のサポート) を有効にする必要があります。有効になっていないと、有効にするかどうかを確認するメッセージが表示されます。[Yes (はい)] をクリックします。
    SupportSkinCache.png

  4. エンジンを 再起動 して、DX12 が有効なエディタを起動し、プロジェクトでレイトレーシングを有効にします。

リアルタイム レイトレーシング機能

レイトレーシングのシャドウ

レイトレーシングのシャドウ では、環境にあるオブジェクトに対するソフトなエリア ライティング エフェクトがシミュレートされます。つまり、光源のサイズやソースの角度に基づいて、オブジェクトのシャドウはコンタクト サーフェスの近くでさらにシャープなシャドウになり、離れるとソフトになって広がります。

シャドウマップを使用したラスタシャドウ

レイトレーシングのソフトシャドウ

レイ トレースによる反射

レイ トレースによる反射 (RTR) では、複数の反射バウンスをサポートする正確な環境表現がシミュレートされます。

この例では、レイ トレースによる反射の単一のバウンスが、レイ トレースによる反射の複数のバウンスと比較して示されています。複数のバウンスを使用すると、シーン内の反射サーフェス間のリアルタイムの内部反射が生み出されます。

レイ トレースによる反射の単一のバウンス

レイ トレースによる反射の複数のバウンス

それに対して、スクリーン空間の反射 (SSR)、平面反射反射キャプチャのアクタはどれも、シーン全体を動的にキャプチャすることはできず、他の反射メソッドに存在する制限事項のいくつかも適用されます。

この比較では、SSR は、単一の反射バウンスが唯一可能であり、表現に対してシーン上で可視であるものに限定されています。一方、RTR は複数のバウンスが可能であり、可視であるものに限定されません。したがって、本の両側、カメラの背後にある反射している床、窓を通して入ってサーフェスに反射している他のライティングを見ることができます。

スクリーン空間の反射

レイ トレースによる反射

レイ トレースによる透過処理

レイ トレースによる透過処理 (RTT) では、透明なサーフェスでの物理的に正確な反射、吸収、屈折により、ガラスや液体マテリアルが正確に表現されます。

ラスタ透過処理

レイ トレースによる透過処理

レイトレーシングのアンビエント オクルージョン

レイトレーシングのアンビエント オクルージョン では、壁のコーナーやエッジのシャドウイング、スキンの割れ目やしわに奥行きが増えるなど、接地したオブジェクトや環境光を遮る領域が正確にシャドウイングされます。

スクリーンスペース アンビエント オクルージョン

レイトレーシングのアンビエント オクルージョン

スクリーン空間のアンビエント オクルージョン (SSAO) と比較すると、RTAO では、オブジェクトが接地し、シーンに奥行きを加えるなど、間接的に光っている領域で自然に見えるシャドウが生み出されています。

レイ トレースによるアンビエント オクルージョン| 強度:0.5

レイ トレースによるアンビエント オクルージョン| 強度:0.85

アンビエント オクルージョン エフェクトのプロパティ Intensity プロパティと Radius を変化させることで、サイズと強さを制御できます。

レイ トレースによるグローバル イルミネーション

レイ トレースによるグローバル イルミネーション (RTGI) では、対象の光源からの光が直接当たっていないシーンの領域に、リアルタイムのインタラクティブなバウンス ライティングが追加されます。

シーン ライティングのみ

レイ トレースによるグローバル イルミネーション| Brute Force Method

ファイナル ギャザー メソッド

これは、現時点では実験的な RTGI メソッドです。

ファイナル ギャザー ベースの手法を使用する代替レイ トレーシング ベースのグローバル イルミネーション メソッドは、ある程度のランタイム パフォーマンスを取り戻す方法を模索して開発されてきました。この手法は 2 パス アルゴリズムです。最初のフェーズでは、オリジナルの RTGI メソッドと同様にシェーディング ポイントが分散されますが、ピクセルあたりのサンプル数は固定レートです。このフェーズでは、16 シェーディング ポイント サンプルまでの履歴がスクリーン空間に格納されます。このアルゴリズムの 2 番目のフェーズでは、シェーディング ポイント履歴への再接続が試行されるので、このメソッドのコストが軽減されます。

オリジナルの RTGI アルゴリズムでは、パス トレーサー のグラウンド トゥルース リファレンスがエミュレートされるので、パス トレーシング結果の実行と類似しています。新しいメソッドでは、そのエミュレーションと引き換えにパフォーマンスが向上し、それによっていくつかの制限事項が導入されています。現時点では、間接ディフューズ GI の単一のバウンスに限定されていて、前のフレームの GI サンプル データの再投影はゴーストの影響を受けやすくなっています。

ポストプロセス ボリュームの [Ray Tracing Global Illumination (レイ トレーシング グローバル イルミネーション)] セクションで、[Types (タイプ)] ドロップダウン選択を使用して [Final Gather (ファイナル ギャザー)] メソッドを有効にします。

一時的ゴースト アーティファクトの抑止に役立つように、次のコマンドを使用して、ワールド空間の拒否基準を変更できます。

r.RayTracing.GlobalIllumination.FinalGatherDistance [number of units] 

現時点では、これはオリジナルのシェーディング ポイントから測定したワールド距離に基づいています。この拒否基準はデフォルトでは 10 単位です。

また、ファイナル ギャザー メソッドが効果的に機能するためには、ポストプロセス ボリュームで以下の設定が使用されている必要があります。

  • Max Bounces (最大バウンス):1

  • Samples Per Pixel (ピクセルあたりのサンプル数):16

1 より大きい [Max Bounces] は警告なしで破棄されます。[Samples Per Pixel] の調整時に、2 の累乗 (例:8、16、32、64) で増やすのが最適です。

レイトレーシング機能を使用する

ポストプロセス ボリューム

ポストプロセス ボリューム をシーンで使用して、レイ トレーシング機能およびパス トレーシング機能とそれらのプロパティを制御します。ボリュームをインテリアおよびエクステリアのさまざまな領域に追加して、必要とする機能や設定を適用することができます。

次のレイ トレーシング機能は、ポストプロセス ボリュームを使用して制御されています。

  • アンビエント オクルージョン

  • グローバル イルミネーション

  • 反射

  • 透過処理

画像をクリックするとフルサイズで表示されます。

使用可能なポストプロセス設定の詳細については、「レイ トレーシング設定」を参照してください。

ライト

レイトレーサーは UE4 で利用可能なすべてのタイプのライトに対するソフトエリアシャドウをサポートします。

レイ トレースによるシャドウ:指向性ライト| ソース アングル:0.5357

レイ トレースによるシャドウ:指向性ライト| ソース アングル:1.25

次の項目を調整することで、シャドウのソフトネスを制御します。  

  • ディレクショナル ライトでは、[Source Angle (ソース アングル)] を設定します。

  • ポイント ライトとスポット ライトで、[Source Radius (ソース半径)] を設定します。 

  • 矩形ライトで、[Barn Door Angle (バーンドアの角度)][Barn Door Length (バーンドアの長さ)] を設定して形状を決め、シャドウのソフトネスをソフトにします。

スカイ ライト

スカイ ライト では、[SLS Captured Scene (SLS キャプチャ シーン)] または [SLS Specified Cubemap (SLS 指定キューブマップ)]、およびレイ トレースによるシャドウイングを使用して、レベルにある離れたパーツをキャプチャし、それをシーンにライトとして適用します。[Cast Raytraced Shadow (レイトレーシングのシャドウをキャスト)] をオンにすると、シーンでスカイ ライティングが有効になります。  

RT_SkyLight

RTGI をスカイ ライトで機能させるには、実験的コンソール変数 r.RayTracing.GlobalIllumination.EvalSkylight を有効にします。

パフォーマンスおよびデバッグ

GPU 統計情報

コンソール コマンド Stat GPU を使用して、関連するレイ トレーシング GPU のパフォーマンスを確認します。有効になっているレイ トレーシング機能に関する関連情報、およびその時点のビューでレンダリングにかかっているフレーム時間が出力されます。 

GPUStats1

Stat D3D12RayTracing

コンソール コマンド Stat D3D12RayTracing を使用して、関連するレイ トレーシング リソースの使用状況を確認します。

StatD3D12RayTracing

レイ トレーシング デバッグ表示モード

レベル ビューポートで、[View Mode (表示モード)] ドロップダウンから [Ray Tracing Debug (レイ トレーシング デバッグ)] を選択して、利用可能なデバッグ表示モードから選びます。  

画像をクリックするとフルサイズで表示されます。

レイ トレーシングの立体角および距離ベースのカリング

レイ トレーシングを使用しているシーンでは、カメラ ビューの外側のオブジェクトがシーン内に存在する必要があり、特に、反射率の高いサーフェスでは、レンダリングのコストが増えることがあります。表示されていないまたは必要とされていないオブジェクトをカリングすると、最適化に役立ち、パフォーマンスを多少取り戻すことができます。

レイ トレーシングでは、シーン内のオブジェクトをカリングする方法がいくつか提供されています。カメラからの距離でカリングする方法と、カメラの背後の領域を投影し (つまり、立体角)、個々のオブジェクトの境界をテストして、カリングするかどうかを判断する方法があり、その両方を同時に行うこともできます。使用するカリングのタイプを設定するには、コンソール変数 r.RayTracing.Culling で以下のいずれかの値を使用します。

  • 1: カメラの背後にあるオブジェクトを、距離と立体角でカリングします (これが、デフォルトのカリング方法です)。

  • 2: カメラの前および背後にあるオブジェクトを、距離と立体角でカリングします

  • 3: カメラの前および背後にあるオブジェクトを、距離 または 立体角でカリングします

この値が大きいほど、シーン内でカリングされるオブジェクトが多くなります。

レイ トレーシングでのカリング用のコンソール変数 (r.RayTracing.*) では、2 つのコマンド AngleRadius を使用して、立体角カリングを設定します。例:r.RayTracing.Culling.Angler.RayTracing.StaticMeshes.WPO.CullingRadius

  • Angle: オブジェクトの境界がテストされてカリングするかどうかが判断される、カメラの背後の投影領域の角度 (度単位) を設定します。この角度を大きくすると、多数のオブジェクトが積極的にカリングされます。

  • Radius: 指定された半径の外側にあるすべてのオブジェクトがカリングされます。デフォルトでは、この半径は 100 メートル (10000 cm、10000 Unreal 単位) に設定されています。

ノイズ除去品質を評価する

次の操作を行って、さまざまなレイ トレーシング エフェクトのノイズ除去品質を評価します。 

  • [Temporal Anti-Aliasing (一時アンチエイリアス)]および[Depth of Field (被写界深度)] を無効にする。

    • どちらも、Unreal Engine のレンダラではリニア カラー空間で実行されていて、何らかの HDR カラー重み付け手法を行って、シャドウとハイライトの間のエイリアスを回避します。

  • ノイズ除去ありのピクセルごとの単一サンプルとノイズ除去なしのピクセルごとの単一サンプルを比較する。 

    • 結果はエネルギーの違いのため不正確に見え、ノイズ除去によりシャドウが暗くなりすぎています。しかし、ピクセルごとの単一サンプルは、トーンマッパのノンリニア処理により、明るく見えるようになります。 

    • 適切に比較するために、ノイズ除去ありのピクセルごとの 単一 サンプルと、ノイズ除去なしのピクセルごとの 複数 サンプルをテストします。

ノイズ除去ありのピクセルごとの単一サンプル

ノイズ除去なしのピクセルごとの複数サンプル

ノイズ除去ありのピクセルごとの単一サンプルは、情報が欠落しているため、完全なものにはなりません。しかし、ノイズ除去なしのピクセルごとの複数サンプルと比較すると、結果に一貫性があります。 

また、ノイズ除去はピクセルごとに最大 4 個のサンプルがサポートされているため、品質が向上し、ノイズ除去なしのピクセルごとの複数サンプルの結果と、ぴったり一致することに注意する必要があります。

デバッグに関するその他の注意事項

  • シーンでのレイ トレーシングの有効/無効を素早く切り替えるには、r.raytracing.ForceAllRayTracingEffects コマンドを使用します。この値が 0 であればすべてのエフェクトが無効になり、1 であればすべてのエフェクトが有効になり、-1 であればプロジェクトで有効になっていた前回の設定が使用されます。

追記

マテリアル 

  • マテリアル コストをテストする

    • 複雑なマテリアルはレイ トレーシング機能のパフォーマンスに影響を及ぼすことがあります。コンソール コマンド r.RayTracing.EnableMaterials を使用して、パフォーマンス インパクトをテストします。

  • Ray Tracing Quality Switch Replace ノード

    • このノードを使用して、RTGI、RT 反射、RT 透過処理などの機能のコストを下げるために、マテリアル ロジックのパーツ全体を、それほど複雑ではないロジックに置き換えます。これは、すべてのレイ トレーシング エフェクトに影響を及ぼすグローバルな変更です。

    • 以下の例では、シーンに表示されるときに、Normal ロジックのパスでレンダリングされます。レイトレーシング のパスでは、レイ トレーシングのエフェクト (テクスチャ、法線、ラフネスによる追加コストが大きくなることがある RTGI や反射など) で、それほど複雑ではないロジックが使用されます。

      画像をクリックするとフルサイズで表示されます。

  • レイ トレースによるシャドウをマテリアルごとにキャストする

    • Cast Ray Traced Shadows (レイ トレースによるシャドウをキャスト) チェックボックスを使用して、このマテリアルがレイ トレースによるシャドウをキャストするかどうかを設定します。これは、レイ トレースによるシャドウをキャストすべきまたはすべきでないジオメトリに割り当てられているマテリアルの特定の要素を制御するのに便利です。

反射

  • レイ トレーシングによる反射は、反射の内側に反射がある複数のバウンスをレンダリングする場合に、コストが高くなることがあります。複数のバウンスがなければ、内部反射のマテリアルは黒色で表示されます。Reflection Capture アクタを、レイ トレーシングによる反射での最後のバウンスとして使用するには、r.RayTracing.Reflections.ReflectionCaptures を有効にします。

スライダーをドラッグすると、単一バウンスの RTR、反射キャプチャのフォールバックなしで 2 回バウンスの RTR、反射キャプチャのフォールバックありの単一バウンスが示されます。

半透明オブジェクトを反射に含める

[Rendering Features (レンダリング機能)] > [Ray Tracing Reflections (レイ トレーシングによる反射)] で、[Post Process Volume] の設定にある [Include Translucent Objects (半透明オブジェクトを含める)] をオンにすることで、レイ トレーシングによる反射で表示される半透明マテリアルが使用されているオブジェクトを有効にします。

透過処理の屈折率 (IOR)

レイ トレーシングで屈折を設定および使用する場合は、半透明マテリアルでの屈折率 (IOR) を制御するために、マテリアルの Refraction 入力が使用されます。

マテリアルで屈折の値を定義する場合、およびポストプロセス ボリュームで屈折のプロパティを設定する場合に、半透明マテリアルの IOR を適切に制御できます。

ラスタ透過処理| 偽の屈折

レイ トレースによる透過処理| 両面マテリアル| 屈折あり

マテリアル設定:

  • 使用しているマテリアルで [Two Sided (両面)] を有効にします。

    • これは必須ではありませんが、片面/非多様のジオメトリには、ボリューム トラッキングまたは光線メディア スタッキングを処理するための適切な手段がありません。両面マテリアルでは正確な結果が提供されるので、レイ トレーシングによる透過処理を使用している場合に、すべての半透明マテリアルを処理するための推奨方法は両面マテリアルです。

  • [Lighting Mode (ライティング モード)][Surface Translucency Volume (サーフェス透過処理ボリューム)] または [Surface Forward Shading (サーフェス フォワード シェーディング)] に設定します。 屈折率を制御するには [Refraction] 入力を使用します。

ポストプロセス ボリューム レンダリング機能の設定:

  • [Translucency (透過処理)] カテゴリで、[Type (タイプ)][Ray Tracing (レイ トレーシング)] に設定します。

  • [Ray Tracing Translucency (レイ トレーシングによる透過処理)] カテゴリで、次のように設定します。

    • Refraction (屈折): 有効

    • Max Refraction Rays (屈折光線の最大数):使用する光線の最大数を設定します。光が反対側まで通り抜けることができるように十分大きい値である必要があります。

マテリアル インスタンスを使用して、IOR 動的に制御して即座に結果が得られるようにします。

屈折の量を制御する

屈折の量および行われる光のトランスポートは、マテリアルでの Refraction 入力、およびポストプロセス ボリュームの [Max Refraction Rays][Refraction] を使用することで、制御されます。

次の半透明マテリアルでは、屈折値 0.04 が使用されていて、最大で 6 つの屈折光線がマテリアルを通り抜けています。下記の比較は、この半透明マテリアルで屈折が有効および無効になっている場合に、屈折によって生み出される違いを示しています。

レイ トレーシングによる屈折:| 無効

レイ トレースによる透過処理| 両面マテリアル| 屈折あり

Refraction 入力に適用される値が異なっていると、半透明マテリアルの屈折のインデックスに影響を及ぼします。

スライダーをドラッグすると、入力が 0.01、0.05、0.1 である場合の屈折の量が示されます。

また、ポストプロセス ボリュームの [Max Refraction Rays] プロパティの値が異なっていると、マテリアルを通り抜ける光のトランスポートに影響を及ぼします。単一光線を使用すると、マテリアルをエスケープするのに十分なバウンスがないため、暗いままになります。光線数を増やすと、屈折したガラスを通してオブジェクトが見えるようになります。ただし、使用される光線の数によっては、エスケープするのに十分な回数だけ光が屈折できないために、一部の領域が暗いままになることがあります。光線の数を増やすと、ボリュームを確実にエスケープするようになります。

スライダーをドラッグすると、屈折光線数が 1、3、5 である場合の結果が示されます。

片面マテリアルの屈折

片面マテリアルを使用してレイ トレースによる屈折を行うことは可能ですが、その結果は、物理的に正確な結果が示される両面マテリアルでの結果と似ていますが、同一ではありません。

レイ トレースによる透過処理| 片面マテリアル| 屈折あり

レイ トレースによる透過処理| 両面マテリアル| 屈折あり

ポストプロセス ボリュームのプロパティ [Max Refraction Rays] は、片面マテリアルと両面マテリアルのどちらでも使用可能であり、光のトランスポートがボリュームを通り抜けることができるように設定できます。ただし、適切な結果が得られる 半透明マテリアルを処理するための推奨方法は両面マテリアルです。

サブサーフェス プロファイル マテリアルでの光伝達

サブサーフェス プロファイル マテリアルでの光伝達は、光源で Transmission プロパティが有効になっている場合に可能です。

ラスタ サブサーフェス プロファイル| Light Transmission

レイ トレーシングによるサブサーフェス プロファイル| Light Transmission

レイ トレーシングによるシャドウの計算時に、メディアを通過して、シャドウをキャストしているライトまでの、想定されるボリュメトリック散乱距離を計算するために、小規模な散乱シミュレーションが実行されます。この散乱距離は、散乱内の寄与を計算するためにライティングで使用されます。

スカイ ライト

天空のような遠くのオブジェクトのキャプチャは、必要でない限り、スカイ ライトの寄与に対しては無効にします。そうすると、パフォーマンスが多少向上し、シーンが最適化されます。UE4 に付属している BP_SkySphere では、このオプションはデフォルトで無効になっていて、空からの反射が想定とは違って見えます。オブジェクトの [Details] パネルのプロパティにある [Visible in Ray Tracing (レイ トレーシングで可視化)] チェックボックスを有効または無効にすることで、そのオブジェクトの寄与を制御できます。

レイトレーシング機能の最適化

  • [Reflections] および [Translucency Maximum Roughness (透過処理の最大ラフネス)] を設定する

    • Max Roughness を使用して、マテリアルでのレイ トレースによる反射のしきい値を設定します。これはポストプロセス ボリューム内のプロパティ、またはコンソール コマンド r.RayTracing.Reflections.MaxRoughness を使用して設定します。

  • [Global Illumination]、[Reflections]、および [Translucency] の [Maximum Ray Distance (光線の最大距離)] を設定する

    • これは各機能に対して光線の最大距離を設定して、シーンでのコストと寄与度を低下させます。

    • コンソールを使用して、レイ トレースによるこれらの各機能に対して MaxRayDistance コンソール変数を設定します。これらの変数は r.RayTracing.* にあります。

  • RTGI の最適化

    • [Screen Percentage (スクリーン比率)] と [Samples Per Pixel (ピクセルあたりのサンプル数)] のデフォルト値がそれぞれ 504 になりました。これらに別の値を設定する必要がある場合は、デフォルトでは、r.RayTracing.GlobalIllumination.ScreenPercentage および r.RayTracing.GlobalIllumination.SamplesPerPixel を使用して設定します。

    • GI へのライトの寄与は、そのライトの Affect Global Illumination プロパティで有効または無効にすることができます。

レイ トレーシングでのジオメトリに関する注意事項

  • フォリッジやフェンスなど、小さな穴や細かな凹凸があるジオメトリはパフォーマンスに影響を与えることがあります。 

  • 室内環境のレンダリングは、室外環境よりも所要時間が長くなります。

    • 例えば、外から光が入っている場合、光が直接当たる領域は、光が間接に当たるポイントよりも高速にレンダリングされます。 

    • また、より多くのレイ トレーシング機能 (反射や透過処理など) を使用されていることを考慮する必要があります。

レイ トレーシングの距離ベースおよび立体角のカリング

レイ トレーシングを使用しているシーンでは、カメラ ビューの外側のオブジェクトがシーン内に存在する必要があり、特に、反射率の高いサーフェスでは、レンダリングのコストが増えることがあります。表示されていないまたは必要とされていないオブジェクトをカリングすると、最適化に役立ち、パフォーマンスを多少取り戻すことができます。

レイ トレーシングでは、シーン内のオブジェクトをカリングする 2 つの方法が提供されています。カメラからの距離でカリングする方法と、カメラの背後の領域を投影し、個々のオブジェクトの境界をテストして、カリングするかどうかを判断する方法があります。デフォルトでは、すべてのレイ トレーシング機能およびジオメトリで、投影領域 (立体角) によるカリングが使用されます。

レイ トレーシングでのカリング用のコンソール変数 (r.RayTracing.*) では、2 つのコマンド AngleRadius を使用して、立体角カリングを設定します。例:r.RayTracing.Culling.Angler.RayTracing.Geometry.InstancedStaticMeshes.CullClusterRadiusr.RayTracing.StaticMeshes.WPO.CullingRadius

  • Angle: オブジェクトの境界がテストされてカリングするかどうかが判断される、カメラの背後の投影領域の角度 (度単位) を設定します。この角度を大きくすると、多数のオブジェクトが積極的にカリングされます。

  • Radius: 指定された半径の外側にあるすべてのオブジェクトがカリングされます。デフォルトでは、この半径は 100 メートル (10000 cm、10000 Unreal 単位) に設定されています。

距離ベースのカリングが必要である場合は、Radius 変数を -1 に設定することで有効になります。

サポートされているレイトレーシング機能

この一覧は、現時点でサポートされている機能を大まかに示すためのものであり、Unreal Engine 4.23 でサポートされるレイ トレーシング機能の包括リストではありません。

機能

サポート (あり/なし/一部)

追記

レンダリング パス

ディファード

あり

フォワード

なし

ライトの種類

指向性ライト

あり

スカイ ライト

あり

ポイント ライト

あり

スポット ライト

あり

矩形ライト

あり

ライティング機能

エミッシブ サーフェス

一部

サーフェスでの反射はサポートされていますが、光の放出やシャドウのキャストはサポートされていません。

光伝達

なし

半透明シャドウは不透明型として扱われます。つまりマテリアルを通じた、色のないシャドウやライトの伝達です。

エリア シャドウイング

あり

IES プロファイル

あり

ライト関数

なし

ボリュメトリック フォグ

なし

イメージ ベースド ライティング (IBL)

あり

スカイライトで HDRI をサポート。

マテリアル:ブレンド モード

オパック

あり

マスク

あり

半透明

あり

異方性

あり

マテリアル:シェーディング モデル

デフォルト ライティング

あり

ライティングなし

一部

マスク

一部

マスクされたシャドウのキャストをサポート

サブサーフェスとサブサーフェス プロファイル

あり

統合済みスキン

一部

動作しますが、結果が正確にレイトレースされていません。ラスタ パイプラインを使用します。

クリアコート

あり

UE 4.25 では、Clear Coat シェーディング モデルが大幅に改善されています。

両面フォリッジ

あり

ヘア

一部

動作しますが、結果が正確にレイトレースされていません。ラスタ パイプラインを使用します。

クロス

一部

動作しますが、結果が正確にレイトレースされていません。ラスタ パイプラインを使用します。

マテリアル関数

あり

両面

あり

ワールド位置オフセット

はい

[Details] パネルの [Evaluate World Position Offset (ワールド位置オフセットを評価)] プロパティで、アクタごとに有効にします。[Static Meshes (スタティック メッシュ)]、[Instanced Static Meshes (インスタンス化スタティック メッシュ)]、[Hierarchical Instanced Static Meshes (階層インスタンス化スタティック メッシュ)] がサポートされています。

ジオメトリ タイプ

スケルタルメッシュ

あり

スタティックメッシュ

あり

ジオメトリ キャッシュ (Alembic)

あり

ランドスケープ

あり

階層インスタンス スタティック メッシュ (HISM)

あり

インスタンス メッシュ (ISM)

あり

スプライン

なし

プロシージャルなメッシュ

あり

このジオメトリ タイプはレイトレーシングでレンダリングすると高負荷の場合があります。

BSP ブラシ

なし

レベルオブディテール (LOD)

あり

LOD の遷移時のディザリングはまだサポートされていません。

ビジュアル エフェクト (VFX)

ナイアガラ

一部

スプライト、リボン、メッシュがサポートされるようになりました。

カスケード

なし

プラットフォーム サポート

マルチビュー (VR と分割画面)

あり

タグ
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる