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

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

Windows
MacOS
Linux

RayTracingBanner

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

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

Unreal Engine のレイトレーシング

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

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

  • パストレーサー はリファレンス レンダリングを生み出すためのものです。

レイトレーサー

レイトレーサーはシャドウ、アンビエントオクルージョン (AO)、反射、インタラクティブ グローバル イルミネーション、透過処理すべてに対して、リアルタイムでレイトレーシングの結果が得られます。グラウンド トゥルースに近い結果と認識する、ノイズ削減アルゴリズムと組み合わせて、少ない数のサンプルを使用することで実行します。例えば、シャドウでは、光が当たるサーフェスからの距離や光源のサイズを基にソフトになり、物理的に正確なコンタクト シャドウが強くなります。

ノイズ削減なしのピクセル当たり単一サンプルのシャドウ

ノイズ削減ありのピクセル当たり単一サンプルのシャドウ

パストレーサー

パストレーサーは偏りのない、物理ベースのパストレーサーで、シーンのリファレンス画像のレンダリングに適しています。オフライン レンダラと同様の動作で、その時点の状態で、時間をかけてサンプルを集め、最終ピクセルではなく、シーンのグラウンド トゥルース レンダリングの生成に便利です。

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

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

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

システム要件

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

Windows 10 RS5 (ビルド1809)以降

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

GPU

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

For more informatin, see NVIDIA's site ここ

Unreal Engine のバージョン

4.22 以降

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

  1. メイン メニューの [File (ファイル)] メニューから [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)、平面反射、さらに反射プローブと比較すると、レイトレースによる反射は、シーン全体をダイナミックにキャプチャします。カメラのビューにないオブジェクト、静的キャプチャでも、反射の中に表現されます。

詳細については、「レイトレーシング設定」を参照してください。

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

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

ラスタ透過処理

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

詳細については、「レイトレーシング設定」を参照してください。

レイトレースによるアンビエント オクルージョン

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

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

レイトレースによるアンビエントオクルージョン (RTAO)

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

詳細については、「レイトレーシング設定」を参照してください。

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

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

スカイ ライトのみ

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

RTGI はデフォルトではオフで、現時点で実験的機能です。有効にするには、ポストプロセス ボリュームをシーンに追加し、 レイトレースによるグローバル イルミネーション を有効にする、またはコンソール変数 r.RayTracing.Globalillumination 1. を使用します。

詳細については、「レイトレーシング設定」を参照してください。

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

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

ポストプロセス ボリュームをシーンで使用して、レイトレーシングおよびパストレーシング機能とプロパティをコントロールします。インテリアとエクステリアに対して異なる領域にボリュームを追加でき、必要な機能と品質レベルを適用できます。これらのボリュームから、レイトレースによる反射、透過処理、グローバル イルミネーション、アンビエントオクルージョンとパストレーサーをコントロールできます。

  1. [Modes (モード)] パネルから、 [Post Process Volume (ポストプロセス ボリューム)] を見つけて レベル にドラッグします。

    クリックしてフルサイズ表示

  1. このボリュームを選択して、 [Details (詳細)]  パネルの [Rendering Features (レンダリング機能)] で、調整可能なレイトレーシングとパストレーシング機能とプロパティを見つけます。

    クリックしてフルサイズ表示

詳細については、「レイトレーシング設定」を参照してください。

ライト

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

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

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

次の項目を調整してシャドウのソフトネスをコントロールします。 

  • 指向性ライト で、 [Source Angle (ソース アングル)] を設定します。

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

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

詳細については、「レイトレーシング設定」を参照してください。

スカイ ライト

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

RT_SkyLight

このシーンでは、単一の HDRI が RTGI とともに使用されて、シーンをライトで照らします。

RTGI とスカイ ライトを連動させるには、RTGI を有効にして、実験的コンソール変数 r.RayTracing.GlobalIllumination.EvalSkylight を使用してスカイ ライティングを評価します。

詳細については、「レイトレーシング設定」を参照してください。

レイトレーシングによるアンビエント オクルージョン

ポストプロセス ボリュームをシーンで使用して、 レイトレースによるアンビエント オクルージョン をコントロールします。 [Ambient Occlusion (アンビエント オクルージョン)] で、エフェクトの [Intensity (強度)] [Radius (半径)] を設定して、サイズと強度をコントロールできます。 

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

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

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

GPU 統計情報

コンソール コマンド GPU Stats を使用して、関連するレイトレースによる GPU パフォーマンスをチェックします。有効なレイトレーシング機能の関連情報とその時点のビューでレンダリングするのにかかるフレーム時間が表示されます。 

GPUStats1

D3D12RayTracing 統計情報

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

StatD3D12RayTracing

レイトレーシング デバッグ ビュー モード

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

クリックしてフルサイズ表示

ノイズ削減品質を評価する

次の操作を実行して、異なるレイトレーシング エフェクトのノイズ削減品質を評価します。 

  • Temporal Anti-Aliasing および 被写界深度 (DOF) を無効にする

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

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

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

    • うまく比較するため、ノイズ削減ありのピクセルごとの 単一 サンプルと、ノイズ削減がない、ピクセルごとの 複数 サンプルをテストします。

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

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

ノイズ削減ありのピクセルごとの単一サンプルは、情報の欠落により完璧になりません。しかし、ノイズ削減なしのピクセルごとの複数サンプルと比較すると、結果に整合性があります。 

また、留意が必要なのが、ノイズ削減はピクセルごとに最大 4 つのサンプルがサポートされ、これにより品質が改善され、ノイズ削減なしのピクセルごとの複数サンプルの結果にさらによく一致することです。

追記

マテリアル 

  • マテリアル コストのテスト

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

  • レイトレーシング品質スイッチ切り替えノード 

    • このノードにより、RTGI、RT 反射、RT 透過処理などの機能に影響を与えるようなマテリアルをあまり複雑ではないマテリアルに置き換えることができます。 

      クリックしてフルサイズ表示

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

  • 反射と透過処理でラフネスを最大に設定する

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

  • グローバル イルミネーション、反射、透過処理で最大レイトレース距離を設定する

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

    • コンソールで、各レイトレース機能に対する MaxRayDistance コンソール変数を使用します。r.RayTracing.* に変数があります。

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

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

  • 室内環境は室外よりもレンダリングが遅くなります。

    • 例えば、外から光が入るとき、直接光が当たる領域は、間接に光が当たる点より速くなります。 

    • また、反射や透過処理など、レイトレーシング機能が使用されている場合にさらに考慮する必要があります。

レイトレーシングのサポート対象の機能

このリストは現時点でサポートされている内容を示すものであり、Unreal Engine 4.22 でサポートされるレイトレーシング機能の包括リストではありません。

機能

サポート (Y/N/一部)

追記

ライトの種類

指向性ライト

Y

スカイ ライト

Y

ポイント ライト

Y

スポット ライト

Y

矩形ライト

Y

ライティング関連機能

エミッシブ サーフェス

一部

サーフェスでの反射はサポート、光の放出やシャドウのキャストは未サポート。

光伝達

N

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

エリア シャドウイング

Y

IES プロファイル

一部

反射や透過処理で未サポート。

ライト関数

N

ボリュメトリック フォグ

N

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

Y

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

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

不透明型

Y

マスク

Y

4.22.1 Hotfix で、マスク マテリアルをサポート

透過処理

一部

シャドウは不透明型とみなされます。

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

デフォルト ライティング

Y

ライティングなし

一部

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

一部

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

統合済みスキン

一部

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

クリア コート

一部

2 番目の法線が反射で読み込まれません。Gバッファ データを通じて最初の交差でのみ利用可能です。

両面フォーリッジ

Y

一部

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

クロス

一部

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

マテリアル関数

Y

両面

一部

半透明マテリアルをまだ正しく処理できません。

ワールド位置オフセット

N

ジオメトリ タイプ

スケルタル メッシュ

Y

スタティック メッシュ

Y

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

Y

ランドスケープ

N

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

N

フォリッジ

N

スプライン

N

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

N

BSP ブラシ

N

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

Y

LOD の遷移時のディザリングは未サポート。

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

Niagara

一部

スプライトのみサポート。リボンとメッシュは未サポート。

カスケード

N

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

バーチャルリアリティ (VR)

N

タグ
Select Skin
Light
Dark

新しい Unreal Engine 4 ドキュメントサイトへようこそ!

あなたの声を私たちに伝えるフィードバックシステムを含め、様々な新機能について開発をおこなっています。まだ広く使える状態にはなっていないので、準備ができるまでは、ドキュメントフィードバックフォーラムで、このページについて、もしくは遭遇した問題について教えていただけると助かります。

新しいシステムが稼働した際にお知らせします。

フィードバックを送信