パス トレーサーは、プログレッシブなハードウェア アクセラレーションによるレンダリング モードであり、物理的に正確かつ妥協のないグローバル イルミネーション、マテリアルの反射や屈折などを使用することで、リアルタイム機能のデメリットを軽減します。 パス トレーサーは Unreal Engine に組み込まれているレイ トレーシング アーキテクチャを共有しているため、クリーンでフォトリアルなレンダリングを実現しながら、追加設定は必要最小限か、まったく必要ありません。
パス トレーサーでは、Real-Time Ray Tracing (リアルタイム レイ トレーシング) や GPU Lightmass などの他のレイ トレーシング機能と同じレイ トレーシング アーキテクチャを使用しています。そのため、グラウンド トゥルースの比較 やプロダクション レンダリングに最適です。 パス トレーサーは、シーン内に存在するジオメトリとマテリアルのみを使用して偏りのない結果をレンダリングします。また、リアルタイム レンダリング向けに適切に機能するよう開発された、同じレイ トレーシング コードを共有することはありません。
パス トレーサーのメリット
パス トレーサーは、他のレンダリング モードと比較して以下のメリットを提供します。
物理的に正確な結果を伴う、高品質でフォトリアルなレンダリングを生成する機能。
他のオフライン レンダラの結果と比較して、最小限の追加設定で済むか、追加設定が不要。
対応するリアルタイム機能との機能のギャップが低減される。 たとえば、グローバル イルミネーションがある場合やパス トレーシングされたシャドウがある場合などにおいて、反射や屈折の中で表示されるマテリアルのレンダリングには制限がありません。
シーケンサーおよびムービー レンダー キューと完全に統合されており、映画/テレビ品質のレンダリング出力をサポート。
パス トレーシングを使用した例
次のシーンは、パス トレーサーを使用して高品質なレンダリングを実現した例です。
プロジェクトでパス トレーサーを有効にする
パス トレーサーを使用するには、プロジェクトで Hardware Ray Tracing (ハードウェア レイ トレーシング) が有効になっている必要があります。 以下のシステム要件を満たし、これらの設定を有効にする必要があります。
システム要件:
オペレーティング システム:Windows 10 1809 以降
GPU:NVIDIA RTX および DXR ドライバ対応の GTX シリーズ グラフィック カード
プロジェクト設定:
[Platforms (プラットフォーム)] > [Windows (ウィンドウ)] > [Targeted RHIs (ターゲットの RHI)] > [Default RHI (デフォルトの RHI)]:DirectX 12
[Engine (エンジン)] > [Rendering (レンダリング)] > [Hardware Ray Tracing (ハードウェア レイ トレーシング)]:[Path Tracing (パス トレーシング)] を有効にする
[Engine (エンジン)] > [Rendering (レンダリング)] > [Hardware Ray Tracing (ハードウェア レイ トレーシング)]:[Support Hardware Ray Tracing (ハードウェア レイ トレーシングをサポート)] を有効にする
[Engine (エンジン)] > [Rendering (レンダリング)] > [Hardware Ray Tracing (ハードウェア レイ トレーシング)]:[Path Tracing (パス トレーシング)] を有効にする
Unreal Engine 5 では、マテリアル用のパス トレーサー固有のシェーダー置換の作成を制御する設定が導入されました。 パス トレーサーを使用する予定がないプロジェクトでは、この設定を無効にするとシェーダーのコンパイル時間を短縮できます。
[Engine (エンジン)] > [Rendering (レンダリング)] > [Optimizations (最適化)]:[Support Compute Skin Cache (スキン キャッシュの計算をサポート)] を有効にする
プロジェクトで [Support Hardware Ray Tracing] が有効になっている場合、[Support Compute Skin Cache (スキン キャッシュの計算をサポート)] が有効になっていない場合は、有効にするよう求めるポップアップ ウィンドウが開きます。 これは、ハードウェア レイ トレーシング機能およびパス トレーシング機能をサポートする上で必須の設定です。
エンジンを再起動して変更を反映します。
レベル エディタでパス トレーサーを使用する
[View Mode (ビュー モード)] ドロップダウン メニューを使用して [Path Tracing (パス トレーシング)] を選択し、レベル ビューポートのパス トレーサー ビューを有効にします。
有効にすると、レンダラは、カメラが動いていないときにサンプルの追加を続けることで、サンプルを着実に蓄積します。 目標のサンプル数に到達すると、フレームのノイズ削減が実施され (ポスト プロセス設定でデノイジングが有効になっている場合)、レンダラ内に存在する残りのすべてのノイズが削除されます。
ほとんどの場合、シーンを変更するとサンプルが無効になり、プロセスが再起動します。 カメラの移動、ビューの変更、オブジェクトのマテリアルの更新または変更、シーンのオブジェクトの移動、シーンへのオブジェクトの追加を行うと、シーンのサンプルが無効になります。
パス トレーサーはインタラクティブに使用でき、サンプルが蓄積されると、シェーディング カラーを持つピクセルの表示がすぐに開始されます。 レンダリングにかかる時間は、サンプリングするシーンやマテリアルの複雑さに大きく影響されます。 屋外のシーンでは光線が少ないバウンスで高速で出ていくため、比較的迅速にレンダリングできる傾向があります。 屋内のシーンでは、特にマテリアルのアルベド値が 1.0 に近い場合はライト パスが長くなります。その結果、レンダリング時間は長くなります。
パス トレーサーをムービー レンダー キューと使用する
このセクションでは、ムービー レンダー キューを使用し、パス トレーシングされたレンダリング出力を生成する方法の詳細について説明します。 一般的な使用法やワークフローの情報については、続行する前に「ムービー レンダー キュー」を参照してください。
ムービー レンダー キュー (MRQ) は、プロダクション パイプラインで高品質なレンダリング出力を生成するうえで役立ちます。 パス トレーサーと組み合わせて使用すると、組み合わせない場合よりも大幅に品質の高いレンダリングが可能になります。
Path Tracer モジュールは、レンダリングされたフレームを出力するためにパス トレーサーの使用を有効にし、レンダリング パスに固有の設定をいくつか提供します。
レベル内にに配置された ポスト プロセス ボリューム も、レイの最大バウンス数、エミッシブ マテリアルのサポート、露出などの特定のパス トレーシング機能を制御します。
MRQ はまた、高品質なレンダリングを実現するため、追加のコントロールやオプションを備えた他の設定モジュールを含んでいます。
High Resolution (高解像度) モジュールは、フレームを別のタイルとしてレンダリングする設定を提供します。このタイルを組み合わせることで、単一フレームを他の方法より高い解像度でレンダリングできます。 個々のタイルは、お使いのグラフィック カードによってサポートされている最大解像度 (RTX 3080 カードの場合は 7680x4320 など) まで利用できます。
Anti-aliasing (アンチエイリアス) モジュールは、ピクセルあたりのサンプル数を調整し、モーション ブラー品質を高めるための特定の設定を提供します。 このモジュールは、レベルのロードやビジュアル エフェクトでシーンを正確にレンダリングするのに必要なウォームアップ時間を提供します。
Temporal Sample Count (時間サンプル数)] では、複数のレンダリングされたフレームを時間的にわずかオフセットされたインスタンスで補間し、モーション ブラーの品質を改善します。 このサンプルの蓄積はノイズ除去後に実行され、個々の空間パスからの残存アーティファクトの安定化に役立ちます。 ただし、[Reference Motion Blur (参照モーション ブラー)] が有効な場合は、ノイズ除去の前に全ての時間的サンプルが取り除かれます。 この場合は、空間サンプルを「1」にして、すべてのサンプリングを時間サンプルを介して実行し、モーション ブラーの品質を最大限に高めることをお勧めします。
[Spatial Sample Count (空間サンプル数)] では、時間サンプルごとに使用する 1 ピクセルあたりのサンプル数を設定します。 ピクセルあたりのサンプル数を増やし、各フレームのレンダリングに必要な時間を増やしながら、各レンダリング パスに存在するノイズを低減します。 MRQ の使用時には、ピクセルあたりのポスト プロセス ボリュームのサンプル数の設定は無視されます。
取得されるピクセルあたりのサンプルの合計数は、空間サンプル数と時間サンプル数の積です。 時間と空間の両方にサンプルが分散していると、より良い結果を得られる場合があります。 たとえば、ピクセルあたり 16 個のサンプルを使用する場合は、「空間サンプルに 4 個、時間サンプルに 4 個」を適用したり、「空間サンプルに 16 個、時間サンプルに 1 個」、もしくは「空間サンプルに 1 個、時間サンプルに 16 個」を適用したりできます。 最適な組み合わせは、主に希望するモーション ブラーの品質に応じて異なります。 静止画の場合はすべてを空間サンプル (時間サンプルは 1 個) に適用し、アニメーションの場合は、参照モーション ブラーを有効にした状態で、空間サンプルに 1 個、時間サンプルに多くを適用することを推奨します。
Console Variables (コンソール変数) モジュールを使用すると、レンダリング フレームに関連するコンソール変数を追加できます。 これには、品質のオーバーライド、またはパス トレーサーに関連する可能性のある一部の設定の切り替えが含まれます。
Output (出力) モジュールは、出力ディレクトリ、ファイル名、画像の解像度、レンダリングする開始/終了フレームを構成するための設定を提供します。
パス トレーサーのポスト プロセス ボリューム設定
レベルに配置されたポスト プロセス ボリュームは、パス トレーサーの構成可能なプロパティを提供します。 これには、ライトのバウンスの最大数、ピクセルあたりのサンプル、アンチエイリアス品質 (またはフィルタ幅) などがあります。
PathTracing カテゴリの [Post Process Volumes Detail (ポストプロセス ボリュームの詳細)] パネルに、パス トレーサーの設定があります。
| プロパティ | 説明 |
|---|---|
Max. Bounces (最大バウンス) | 光線が終了するまでに移動するライトのバウンスの可能な最大数を設定します。 |
Samples Per Pixel (ピクセルあたりのサンプル数) | 収束でピクセルごとに使用するサンプル数を設定します。 サンプル数の値を大きくすると、レンダリングされるイメージのノイズが少なくなります。 |
最大パス強度 | ファイアフライ アーティファクト の発生を低減するためにパス トレーシングで許可する最大露出を設定します。 シーンの露出よりも露出を大きい値に調整すると、このアーティファクトが軽減されます (詳細情報およびこのタイプのアーティファクトの例については、このページの「追加情報」セクションを参照してください)。 |
エミッシブ マテリアル | エミッシブ カラーが設定されているマテリアルがシーンのライティングに寄与するかどうか 無効の場合もこれらの色はカメラ光線に表示されますが、シーン内に光を放つことはありません。 これを使用すると、モデル化されたジオメトリがある一方で、ローカル光源によっても表現されるライト フィクスチャなど、一部の影響が二重にカウントされるかどうかをすばやく判断することができます。 より細かく制御するために、マテリアル内で PathTracingRayTypeSwitch ノードを使用することもできます。 |
Reference Depth of Field (参照被写界深度) | ポスト プロセス エフェクトを置き換える参照品質の被写界深度 (DOF) を有効にします。 このモードでは、透過サーフェス、ボリュメトリック、ヘア (髪) ジオメトリを正しく処理できます。 |
Reference Atmosphere (参照アトモスフィア) | スカイライトに対するスカイ環境の影響をベイクする代わりに、環境内でのパス トレーシングを有効にします。 これを有効にすると、シーンに存在するスカイライト コンポーネントは自動的に無視されます。 詳細については、このページの「参照アトモスフィア」セクションを参照してください。 |
Denoiser (ノイズ除去) | この切り替えオプションは、現在ロードされているノイズ除去プラグインを最後のサンプルに使用し、レンダリングされた出力からノイズを除去します。 デフォルトでは、NNE Denoiser プラグインが使用されます。 ノイズ除去プラグインが有効になっていない場合、この設定はレンダリングされた出力に影響しません。 |
Lighting Components (ライティング コンポーネント) | このセクションには、特定のライト パスの計算を制限して、画像の出力品質を選択できるようにするための数々のチェックボックスが含まれています。 これを使って画像を複数のパスに分割することができます (これらは後に元の画像にまとめられます)。 間接エミッシブは、エミッシブ マテリアルのバウンス ライティングを制御するという点で多少異なります。 実際の光源によっても再現される、サーフェスのイルミネーションの二重カウントを回避したり、小さなエミッタからのノイズを削減したりするために、このプロパティを無効にすべき場合もあります。 たとえば、小さい電球を表すエミッシブ マテリアルがあり、同時にポイント ライトまたはスポット ライトの光源も使用してエリアを照らしている場合では、二重のカウントが行われています。 |
MRQ でライティング コンポーネントをレンダリングする
パス トレーサーでは、ムービー レンダー キュー (MRQ) を使用して、呼び出し可能なブループリント イベントを介して、ディフューズやスペキュラといった個別のライティング コンポーネントのレンダリングを出力することができます。
これを行うには、ポスト プロセス ボリューム を含む アクタ ブループリント を作成する必要があります。 ボリュームを Infinite Extent (Unbound) に設定し、その優先度を高く設定し、そのボリュームが、シーン内の他のポスト プロセス ボリュームよりも常に優先されるようにします。
このポスト プロセス ボリュームの目的は、ブループリント内でカスタム仕様のイベントを通じてライティング コンポーネント コンフィギュレーションを希望どおりに設定することです。 これらのカスタム仕様のイベントは、Start Console Command Track (コンソール コマンドの追跡開始)を使用し、Ke * [カスタム仕様のイベントの名前]構文を使用し、ムービー パイプライン コンフィギュレーション ファイルを介してそれぞれのイベントを呼び出すことによって実行できます。
以下の例では、RenderSpecular という名前のカスタム仕様のイベントがムービー パイプライン コンフィギュレーションによってコンソール コマンド Ke * RenderSpecular によって呼び出されます。
このプロセスにより、プロジェクトのニーズに応じてユニークなライティング コンポーネント コンフィギュレーションを設定しやすくなります。
複数のライティング コンポーネント レンダリングを作成するには、MRQ でショットを複数回呼び出す必要があります (希望するパス コンフィギュレーションごとに一度ずつ)。 キューにあるそれぞれのアイテムは異なるムービー パイプライン コンフィギュレーションを参照する必要があり、(下記の例のように) ライティング コンポーネントを設定するために、それぞれが異なるカスタム仕様のイベントを呼び出します。
この設定ではレンダリングを複数回実行する必要がありますが、パス トレーサーでは早期アウトが可能なため、複数のライティング コンポーネント コンフィギュレーションのレンダリング時に、レンダリング時間に直接的な線形スケールはないことに注意してください。
作成したブループリントで次のイベントを設定します。
パス トレーサーの制限事項
以下は、Unreal Engine のパス トレーシングにおける現在の制限事項です。
明るいマテリアルがあると、インテリアのレンダリング速度が低下する
明るい白色など、アルベド値が 1.0 に近いマテリアルは、多数のバウンスを伴う光のパスをパス トレーサーでシミュレートする必要があるため、フレームのレンダリングにかかる時間が必要以上に長くなります。 屋内のシーンでは、光線が環境から出て終了するまでの時間が長くなる場合があるため、特にこの影響を受けやすくなります。
パス トレーサーではロシアン ルーレットの手法を使用して、シーンに貢献する可能性が低い光線を徐々に終了します。 可能な場合にはロシアン ルーレットの手法によって光線が終了されるため、シーン全体で継続的にバウンスする光線が生じる可能性はあまり高くありません。 マテリアルのアルベド値が 1.0 に近い場合は、光線のパスが終了される可能性が低くなり、フレームに対するレンダリング時間を伸ばすことにつながります。
実世界では、全ての入射光を反射するマテリアルは珍しく、サーフェスの外見が色あせて見える傾向があります。 そのため、すべてのディフューズ マテリアルのベース カラーは 0.8 未満に維持することをお勧めします。
動的なシーン要素
パス トレーサーは、時間の経過とともにレンダラにサンプルを蓄積させることで機能します。 これは、スタティックなシーンに最適です。また、動くライト、アニメートされたスキン メッシュ、ビジュアル エフェクトなどの要素を含む動的なシーンにはあまり適していません。 このタイプの要素によってパス トレーシングがエディタで無効になることはなく、フレーム内でアーティファクトがぼやけたり筋状の表示になったりします。 これは、エディタで作業し、ムービー レンダー キューを使用して修正し、最終的な要素をレンダリングした場合のみに表示されます。
ビューポートとは異なる解像度で高解像のスクリーンショット (下記参照) をキャプチャすることでもこの問題を回避できます。このキャプチャリングでは、エンジンのティック時間を進めずにすべてのサンプルを取るためです。
Path Tracing Material Quality Switch ノード
PathTracingQualitySwitch ノードを使用してマテリアルの複雑さを低減することで、パス トレーシング機能用にマテリアルを最適化すると、標準マテリアルで使用される複雑さや回避策を軽減することができます。 ランタイムは重要ではないため、マテリアルで妥協する必要はありません。 これらのノードを使用することで、マテリアルを複製することなく、妥協のない結果を提供することができます。
Ray Tracing Material Quality Switch ノード
Ray Tracing Quality Switch ノードを使用してレイ トレーシング機能の複雑さを軽減し、レイ トレーシング機能用にマテリアルを最適化すると、ランタイム時の負荷を抑えることができます。 これにより、Unreal Engine のレイ トレーシング機能ではディファード レンダラと比較して単純なマテリアルを使用できます。
パス トレーサーの目的は高品質な出力を実現することであるため、パス トレーサーは、レイ トレーシングに基づいているにもかかわらず、これらのスイッチ ノードの Normal ポートを使用します。 特にパス トレーサーのためにマテリアルの動作を制御するには、代わりに PathTracingQualitySwitch ノードを使用します。
HDRIBackdrop はパス トレーサーと互換性がない
HDRIBackdrop コンポーネントの現在の実装では、パス トレーサーでのイルミネーションが二重にカウントされ、HDRI ライティングのサンプリングの重要さが無効になります。 バックドロップを表示させるには、指定されたテクスチャを持つスカイ ライトを使用して、パス トレーサー コンソール変数
r.PathTracing.VisibleLights 2を設定することをお勧めします。
これは、シャドウ キャッチャーによる地面を提供するものではありません。
パス トレーサーのサポートされている機能
パス トレーサーの制限事項となるのは現在の実装の制限事項か、サポートされる予定がない機能のいずれかです。 この機能のリストは、現在のリリースで現時点でサポートされている内容を示すものであり、 エンジンがサポートしている機能/プロパティをすべて網羅するものではありません。
パス トレーサーは、Unreal Engine のリアルタイム レイ トレーシング機能と同じコードを共有しています。 通常、リアルタイム レイ トレーシングでサポートされている機能はパス トレーサーでもサポートされています。
| 機能名 | サポートの有無 | 追記 |
|---|---|---|
| ジオメトリ タイプ | ||
Nanite | オン | Nanite が有効なメッシュには、デフォルトでフォールバック メッシュが使用されます。 ソース メッシュの三角形をより多く使用するには、スタティックメッシュ エディタの [Fallback Relative Error (フォールバック相対誤差)] パラメータの値を小さくします。 (実験段階) Nanite メッシュのネイティブのパス トレーシングの初期サポートは、コンソール変数 |
Skin Meshes (スキン メッシュ) | オン | アニメーションによってパス トレーサーが無効になることはなく、ビューポートにぼかしや筋状の表示を発生させる可能性があります。 最終的な画像を出力するには、ムービー レンダー キューを使用する必要があります。 |
World Position Offset-driven Animation (ワールド位置オフセット駆動のアニメーション) | オン | Evaluate World Position Offset (ワールド位置オフセットを評価) が個々のシーンのアクタで有効になっている必要があります パス トレーサーが無効になることはなく、ビューポートにぼかしや筋状の表示を発生させる可能性があります。 最終的な画像を出力するには、ムービー レンダー キューを使用する必要があります。 |
Hair Strands (髪の束) | オン | 髪の束 (ヘア ストランド) のサポートは、効率的なアクセラレーション構造を構築するために多くのリソースを必要とするため、引き続き実験的段階と見なされています。 コンソール変数 |
Landscape (ランドスケープ) | オン | |
Spline Meshes (スプライン メッシュ) | オン | |
Instanced Static Mesh (インスタンス化スタティック メッシュ) | オン | |
Hierarchical Instanced Static Mesh (階層インスタンス化スタティック メッシュ) | オン | |
Water Geometry (水のジオメトリ) | オン | これは、コンソール変数 |
| ビジュアル エフェクト | ||
Niagara Particle Systems (Niagara パーティクル システム) | オン | パーティクル システムによってパス トレーサーが無効になることはなく、ビューポートにぼかしや筋状の表示を発生させます。 最終的な画像を出力するには、ムービー レンダー キューを使用する必要があります。 |
| ライトタイプ | ||
Directional Light (ディレクショナル ライト) | オン | |
Sky Light (スカイ ライト) | オン |
|
Point Light (ポイント ライト) | オン | |
Spot Light (スポットライト) | オン | |
Rect Light (矩形ライト) | オン | |
| ライティング機能/プロパティ | ||
Emissive Materials (エミッシブ マテリアル) | オン | 小さいエミッシブなパーツは、レンダリングされたシーンに多数のノイズを発生させる場合があります。 また、エミッシブなパーツに関連付けられたライトがある場合、二重にカウントされたライティングを発生させます。 無効にするには、[Post Process Voluome (ポスト プロセス ボリューム)] の設定の [Emissive Materials (エミッシブ マテリアル)] チェックボックスを使用するか、コンソール変数 |
Sky Atomosphere (スカイ環境) | オン | コンポーネントで[Real Time Capture (リアルタイム キャプチャ)]が有効に設定されたスカイ ライトがシーン内に必要です。 または、ポスト プロセス ボリューム設定の [Reference Atmosphere (参照アトモスフィア)] を有効にして、スカイ ライトに対するスカイ環境の影響をベイクする代わりに、環境のパス トレーシングを実行します。 これを有効にすると、シーンに存在するスカイ ライトは自動的に無視されます。 詳細については、このページの 「フォグと大気」セクションを参照してください。 |
Volumetric Clouds (ボリュメトリック クラウド) | 一部サポート有 | スカイ環境と同様に、これはスカイライトによってキャプチャされるか、パス トレーサー設定セクションのポスト プロセス設定で参照アトモスフィア モードを使用している場合にネイティブに表現されます。 |
Exponential Height Fog (指数関数的高さフォグ) | オン | [Volumetric Fog (ボリュメトリック フォグ)] 設定を有効にする必要があります。 一部のコントロールは物理的に意味がないため、全てのコントロールがサポートされているわけではありません。 詳細については、このページの 「フォグと大気」セクションを参照してください。 |
Volumetric Fog (ボリュメトリック フォグ) | オン | 指数関数的高さフォグ コンポーネント上で有効にする必要があります。 詳細については、このページの 「フォグと大気」セクションを参照してください。 |
IES Profiles (IES プロファイル) | オン | |
Light Functions (ライト関数) | オン |
|
| ポストプロセス | ||
Depth of Field (被写界深度) | オン | パス トレーサーは、ラスタライザーで生成されたパスを使用するのではなく、独自の深度パスをレンダリングします。 これにより、深度と RGB カラーの結果がより正確に一致するようになり、深度に依存するポストプロセス パスが改善されました。 これは、ポストプロセス ボリューム設定で有効になる可能性のある [Reference Depth of Field (被写界深度 (DOF) の参照)] オプションには影響しません。 |
Motion Blur | 一部サポート有 | [Path Tracing (パストレーシング)] モジュールで[Reference Motion Blur (参照モーション ブラー)] を有効にする場合にムービー レンダー キューを使用すると、最も正確な結果を得ることができます。 このオプションにより、より正確なモーション ブラーを得るためにより高いパフォーマンス負荷が生じますが、スムーズな結果を得ることができます。 このモードでは、ポスト プロセス ブラーは適用されず、すべての空間サンプルおよび時間サンプルが蓄積された後にノイズ除去が適用されます。 適用する時間サンプルが多いほど品質が高くなります。 ただし、時間サンプルの数が非常に大きい場合は、シーケンサーにおけるティック解像度の制限に注意してください。 |
| マテリアル シェーディング モデル | ||
Unlit (非ライティング) | オン | |
Default Lit (デフォルト ライティング) | オン | |
Subsurface (サブ サーフェス) | オン | |
Preintegrated Skin (統合済みスキン) | オン | サブサーフェスのシェーディング モデルと同じレンダリングを実行します。 |
AlphaHoldout (アルファ提供) | オン | |
Clear Coat (クリアコート) | オン | |
Subsurface Profile (サブ サーフェス プロファイル) | オン | Burley サブ サーフェス散乱が有効になっているサブ サーフェス プロファイルが必要です。 |
Two Sided Foliage (両面フォリッジ) | オン | |
Hair (ヘア) | オン | このシェーディング モデルのサポートはまだ実験段階と見なされており、Lit シェーディング モデルの動作に対してまだ校正されていません。 |
Cloth (クロス) | オン | |
Eye (眼) | オン | |
SingleLayerWater (単一レイヤーウォーター) | オン | このシェーディング モデルの実験的サポートを追加しました。 ラスタ実装はポスト プロセスに大きく依存するため、近い一致は現在可能ではありません。 |
Thin Translucent (薄い透明) | オン | |
From Material Expression (マテリアル表現式から) | オン | |
| マテリアル機能 | ||
Substrate Material (層状マテリアル) | オン | 初期サポートを実装しました。 Substrate は実験的機能であり、現在も開発が進められています。 |
Sparse Volume Textures (スパース ボリューム テクスチャ) | 一部サポート有 | 初期サポートを追加しました。 設定方法および使用方法の詳細については、「スパース ボリューム テクスチャ」 を参照してください。 |
Heterogeneous Volumes (異種ボリューム) | 一部サポート有 | 初期サポートを追加しました。 Sky Atmosphere (スカイ環境) はサポートされていません。 詳細については、「異種ボリューム」 を参照してください。 |
Colored Shadows (色付きシャドウ) | オン | Thin Translucent (薄い透明) またはソリッドなガラスで実現できます。 このページの「パス トレーサーを使用したガラスのレンダリング」セクションと「色吸収」セクションを参照してください。 |
Translucent Shadows (半透明のシャドウ) | オン | |
Refraction (屈折) | オン | |
Decals (デカール) | オン | DecalActor とメッシュ デカールの両方がサポートされています。 |
Anisotrophy (異方性) | オン | |
| システム サポート | ||
Multiple GPU (複数の GPU) | オン | NVIDIA NvLink / SLI をサポートする GPU が必要です。 このページの「複数の GPU を使用したレンダリングを有効にする」セクションを参照してください。 |
Sequencer Movie Render Queue (シーケンサーのムービー レンダー キュー) | オン | |
Orthogarphic Camera (正投影カメラ) | オン | |
Per Instance Custom Data (インスタンスごとのカスタムデータ) | オン | |
Per Instance Random Data (インスタンスごとのランダム データ) | オン |
追加情報
パス トレーシング モードは、Unreal Engine 内の他のレンダリング方式の一部とは機能が異なります。 つまり、リアルタイム レンダリングで適切に機能するものでも、パス トレーシングを使用したレンダリングでは最適な動作にならない可能性があります。 次のセクションでは、これらの不整合や一般的な問題、およびパス トレーサーの成果を改善するために実行できる手順について説明します。
ファイアフライ アーティファクトを低減する
パス トレーサーは、マテリアルのプロパティに従って光線をランダムに追跡することでライトをシミュレートします。 シーンの明るい領域が検出される可能性が低い場合、結果のサンプルは過度に明るくなり、光の斑点 (ファイアフライ) が発生してフレーム内に表示されたり消えたりする場合があります。 パス トレーシングでは、これらのエフェクトの共通の発生源に最もなりやすいものが最小化されますが、一部のシナリオではそれでも発生する場合があります。
パス トレーシングされた結果がブルーム ポスト プロセス パスと組み合わさると、結果のピクセルは表示されたり消えたり、明るくなったり暗くなったりするため、非常に目につきやすくなります。
ポスト プロセスの設定である Max Path Intensity は、レンダリングされたパストレース済みのシーンで使用される最大強度を制御します。 このデフォルト値では、ファイアフライがかなり積極的にクランプされるため、ほとんどの場合、変更する必要はありません。 値を大きくすると、より多くのノイズが発生してより正確なレンダリングが得られますが、値を小さくすると、エネルギーの損失が増加しますが、より積極的にクランプされる可能性があります。 この値は現在の露出を基準とするため、全てのケースで一定に保つことができます
ノイズ除去オプション
ビューポート、 ムービー レンダリング グラフ、またはムービー レンダー キュー を通じてパス トレーサーを使用してフレームをインタラクティブにレンダリングする際は、フレームにわずかなノイズが発生します。 ノイズを削減する 1 つの方法として、ノイズ除去アルゴリズムを使用して最終結果を安定させ、ノイズを抑えたクリーンな画像を生成するやり方があります。
[Path Tracing (パス トレーシング)] セクションの Denoiser (ノイズ除去) が有効な場合、パス トレーサーは ポスト プロセス ボリューム設定を通じて、ノイズ除去を有効にします。
デフォルトで利用できるプラグインは 2 つあります。
NNE Denoise はデフォルトの実装です。 Intel の Open Image Denoise と同じネットワークに基づくものの、GPU 上で実行され、パフォーマンスを向上させます。 これはデフォルトであり推奨オプションです。
NFOR Denoiser は、アニメーション レンダリングに最適化されたノイズ除去です。 隣接するフレームを考慮し、ムービー レンダー キューを介してアニメーション シーケンスをレンダリングする場合は、デフォルトのノイズ除去よりも安定した結果を生成できます。
さらに、次のサードパーティ製ノイズ除去ライブラリもサポートされています。
Intel の Open Image Denoise ライブラリは、最後に採取したサンプルからノイズを除去し、長時間実行されるフレームの品質を改善する CPU ベースのノイズ除去です。 これは、組み込みの「NNE Denoiser」と同じ結果を生成します。
NVIDIA Optix AI-Accelerated Denoiser ライブラリは、視覚的なノイズを軽減しつつ、より高速のノイズ除去時間を提供するために、数万枚の画像でトレーニングされた、GPU アクセラレーションを活用する人工知能です。 これにより、デフォルトのノイズ除去とは異なる結果が生じる場合があります。ただし、NVidia GPU が必要です。
これは、フレームにノイズ除去が適用されている場合と適用されていない場合の比較例です。
NNE Denoiser
NNEDenoiser プラグインはデフォルトで有効になります。
このノイズ除去機能は、さまざまな NNE のランタイム時に任意のニューラル ノイズ除去ネットワークをインポートして実行できる、一般的なノイズ除去プラグインであり、 Intel が提供する Open Image Denoiser のさまざまなバージョン (速度優先モード、バランス モード、品質優先モード。各モードにアルファ チャンネル対応と非対応あり) が付属しており、CPU または GPU のいずれかで実行できます。 デフォルトは、GPU で実行され、適切な品質でインタラクティブにノイズを除去するアルファが含まれる、バランスの取れたプリセットに設定されています。
プリセットを変更する方法、または独自のニューラル ノイズ除去機能を追加して有効にする方法の詳細については、「「NNE Denoiser」 を参照してください。
Open Image Denoise プラグイン
このノイズ除去機能は CPU で実行されます。インタラクティブなノイズ除去向けの設計ではありませんが、長期間実行されるフレームの品質改善に役立ちます。 このノイズ除去機能はあらゆるケースにおける一時的な一貫性を保証するものではなく、安定した出力を得るために、ピクセルごとに非常に大きい数のサンプルが必要になる場合があります。 [Anti-aliasing (アンチエイリアス)] モジュール設定の [Temporal Sample Count (テンポラル サンプル数)] の値を高くすると、ムービー レンダー キューを使用している場合、一時的な安定性が改善されます。
Optix Denoise プラグイン
これは実験段階のプラグインです。
OptixDenoise プラグインは、[Plugins (プラグイン)] ブラウザからプロジェクトに対して有効にする必要があります。
このノイズ除去機能では、ノイズの除去処理を高速化しつつ、視覚的なノイズを軽減するために、GPU アクセラレーションを活用する人工知能 (AI) を使用します。 また、ノイズ除去されたアニメーションのちらつきの低減を試みるテンポラル コンポーネントも備えています。
プロジェクトに対して複数のプラグインを有効にした場合は、コンソール変数を使用して、ポスト プロセス ボリューム設定で [Denoiser (ノイズ除去)] が有効になっているときに使用するノイズ除去機能を選択する必要があります。 空間ノイズ除去 (0、デフォルト) または時間ノイズ除去 (1) のどちらを使用するかを選択するには、コンソール変数 r.PathTracing.SpatialDenoiser.Type を使用します。 空間ノイズ除去が有効になっているときに使用するノイズ除去機能を選択するには、r.PathTracing.Denoiser.Name を (NNEDenoiser (デフォルト) または OIDN など) に設定します。 時間ノイズ除去が有効になっているときに使用するノイズ除去機能を選択するには、r.PathTracing.TemporalDenoiser.Name を (NFOR (デフォルト)、NNEDenoiser、または OptiX など) に設定します。
パス トレーサーを使用したスカイライト
スカイライトは、スカイ マテリアルを適用した従来のスカイボックスを使用する方法、またはスカイ ライトの リアルタイム キャプチャ モードを使用してシーン内の空、大気、および雲をキャプチャする 2 つの方法で処理されます。
スカイボックスを使用して空を表現する場合、パス トレーサーと適切に連携するように、メッシュおよびマテリアルにいくつかの設定を行う必要があります。 まず、スカイ マテリアルでは、マテリアルの [Details (詳細)] パネルの設定でフラグ [Is Sky] が有効になっている必要があります。 これによって、シーン内にスカイ ライトが存在する場合に、スカイボックス マテリアルのイルミネーションが二重にカウントされることがなくなります。 また、仮に二重にカウントされてしまった場合にも、発生するノイズの量が低減される可能性があります。
レベルでスカイボックス アクタを選択し、[Details] パネルを使用して [Cast Shadows (投影)] を無効にして、シーン内のスカイ ライトとディレクショナル ライトからの作用がメッシュに遮られないようにします。
あるいは、スカイ ライトのリアルタイム キャプチャ モードを有効にすることで、 スカイ環境 および ボリュメトリック クラウド システムからのライティングの作用をキャプチャすることができます。 スカイライトの表現におけるスカイボックス、スカイ環境、およびボリュメトリック クラウドのキャプチャに制限により、解像度はスカイ ライトの Cubemap Resolution (キューブマップの解像度) によって異なります。
フォグと大気のボリュメトリック
パス トレーサーでは、スカイ環境コンポーネントと指数関数的高さフォグ コンポーネントからのボリュメトリックをサポートします。
参照アトモスフィア
ポスト プロセス ボリュームの設定で [Reference Atmosphere (参照アトモスフィア)] が有効になっている場合は、スカイ環境のライティングが容量分析で計算され、より現実的な結果が出力されます。 天空光はローカルの光源およびディレクショナル ライトのみに影響を受けるため、このモードではシーン内のあらゆるスカイ ライトが自動的に無視されます。 パス トレーサーでは地球を巨大な球体として表現するため、適切なシャドウイングが行われ、グラウンドの色が全方向からの空への反射光内で適切に反射します。
参照アトモスフィアを使用する際は、次の点にも注意してください。
スカイ環境 を意図したとおりに使用するには、その [トランスフォーム モード] 設定を [コンポーネントのトランスフォーム時に球体上部] に設定し、コンポーネントをシーンの下に移動して、惑星の地面がシーンの邪魔にならないようにします。
ボリュメトリック クラウド コンポーネントは、Unreal Engine 5.6 からサポートされるようになりました。 デフォルトでは、ラスタライズ パイプラインとの互換性を確保してパフォーマンスを向上させるため、多重散乱の近似形式が使用されます。 雲内の真の多重散乱は
r.PathTracing.CloudMultipleScatterMode 2を使用して有効にできますが、これによりレンダリング時間が大幅に増加する可能性があります。 デフォルト値の「1」は、クラウド マテリアルの Volumetric Advanced Output ノードで設定されたパラメータを使用します。スカイボックスのジオメトリは、惑星大気のサイズを超えてスケーリングされないかぎり、参照大気モードの使用時には無効にすることをお勧めします (その場合、惑星の大気の外部に存在する月、星、またはその他のオブジェクトを表現するために使用できます)。 パス トレーサーのみのスカイボックスを非表示にするには、メッシュをレイ トレーシングで非表示とに設定するのが最も簡単です。
太陽を表す遠方のライトでこのプロパティが有効になっている場合、雲はジオメトリでシャドウのみキャストします。
ボリュメトリック フォグ
フォグは、[Volumetric Fog] が有効に設定された指数関数的高さフォグ コンポーネントを使用する場合にサポートされます。
一部のパラメータは物理的に意味がないため、すべてのコントロールがサポートされているわけではありません。サポートされる主要なパラメータは次のとおりです。
Fog Density (フォグ濃度) と Fog Height Falloff (フォグ高さフォールオフ)
散乱分布
アルベド
エクスティンクションスケール
表示距離
無制限の範囲が長いレンダリング時間につながる可能性があるため、以前はこれによって高さフォグの影響が及ぶ領域が制限されていました。
異種ボリュームのレンダリング
異種ボリュームは、Niagara Fluids プラグインを使用するか、スパース ボリューム テクスチャマテリアルを使用するシーン内の異種ボリューム アクタをインスタンス化することでレンダリングされます。
パス トレーサーを使用して異種ボリュームをレンダリングする方法の詳細については、「異種ボリューム」と「スパース ボリューム テクスチャ」を参照してください。
光源の直接的な可視性
厳密でない光源 (ソース半径が設定されたポイント ライト、矩形ライト、スカイ ライトなど) は、デフォルトでカメラの光線に対して直接表示されないようになっています。 この例外となるのが、リアルタイム キャプチャが有効になっているスカイ ライトです。
スカイボックスのジオメトリ、およびスタティックな (または指定した) キューブマップと組み合わせる場合、スカイライトは通常、カメラ レイで表示されることはありません。 コンソール変数 r.PathTracing.VisibleLights 1 を設定することで、これを変更できます。
表示されるライトのコンソール変数が有効になっているかどうかにかかわらず、反射と屈折においてすべての光源が表示されるようになります。 これにより、光源がすべての光線パスに確実に表示されます。 ただし、予期しない動作が発生する場合があります。 たとえば、矩形ライトをガラスの窓のすぐ後ろに配置するとそのライトは表示されますが、窓を通した表示はブロックされます。これは、屈折率が 1 でない屈折の場合のみに発生します。
パス トレーサーを使用したガラスのレンダリング
基本的なガラス マテリアル
パス トレーサーでのガラス用の基本的なマテリアルの設定は、いくつかの要素に応じて異なります。 最初に判断しなければならないのは、シェードするメッシュが厚みを含めてモデル化されているかどうかです。 まずは、ソリッドな (「厚みがある」) 場合を見ていきましょう。 この場合は、マテリアルを次のとおりに設定します。
Shading Model (シェーディング モデル):Default Lit (デフォルト ライティング)
Blending Mode (ブレンド モード):Translucent (透過)
Lighting Mode (ライティング モード):Surface Forward Shading (サーフェス フォワード シェーディング) - すべてのシェーダー パラメータにアクセスするため。
Refraction Method (屈折方法):Index of Refraction (屈折率)
この基本的な設定を行い、 [Opacity (オパシティ)] を「0」に設定すると、マテリアルの一部がライトを屈折させることができます。 Opacity パラメータは、ディフューズ (拡散反射) とスペキュラ (鏡面反射) を含む「Default Lit」シェーディング モデルと透明なガラスを表現する純粋な屈折シェーディング モデルとの間のブレンドと考えることができます。 屈折の量は、デフォルトでスペキュラ カラーから自動的に派生されます。 より細かく制御するには、マテリアルの [Index of Refraction (屈折率)] スロットに値を入力してこれをオーバーライドすることで、屈折率を IOR の光線曲げエフェクトから切り離して制御できます。 次は、最もシンプルなガラス マテリアルの例です。
次に、個別の IOR でフレネル エフェクトと屈折を制御することで、ガラス シェーディングをより細かく制御する方法を見ていきます。 最大「0.08」の SpecularColor (およそ「1.8」の IOR に相当) までしか生成できないスペキュラを使用する代わりに、[Metallic (メタリック)] を「1.0」に設定することで (SpecularColor=BaseColor になります)、スペキュラ カラーをより直接的に操作します。 次に、SpecularColor=((IOR-1)/(IOR+1))^2 式 で、屈折率の値を使用して適切な SpecularColor を算出します。 次はマテリアルの例です。
次は、スペキュラリティと反射の個別のコントロールの 例です。
スライダをドラッグして、ガラス マテリアルのスペキュラリティが変化する様子を確認してください。 スペキュラの値は 0 ~ 1.0 の範囲で 0.1 ずつ変化します。 この変化は 1.0 から 1.789 の IOR の値と同等です。
スライダをドラッグして、ガラス マテリアルのスペキュラリティが変化する様子を確認してください。 スペキュラの値は 0 ~ 1.0 の範囲で 0.1 ずつ変化します。
Thin Translucency シェーディング モデル
Thin Translucency (薄い透過物) シェーディング モデルは、一枚のガラスの板が単一のフラット ポリゴンで表現される場合など、厚みがまったくないオブジェクトで物理的に正確な結果を得るのに便利です。 薄いガラス マテリアルの設定はほとんど前述と同じですが、以下の点だけを変更する必要があります。
Shading Model (シェーディング モデル):Thin Translucent (薄い透明)
色を制御するための Thin Translucent Material ノードを追加する (後述の「色吸収」セクションを参照)
ソリッドな場合と薄い場合の他の動作はすべて同じですが、 重要な違いが 1 つあります。薄い場合、ラフネスが低いと、実際には屈折率によって光線の方向は変わりません。 ただし、反射性、透過量、反射ラフネスと透過ラフネスとの割合の制御には多少の影響が及びます。 屈折率が 1 に近づくにつれて透過ラフネスは低下しますが、反射したラフネスはそのまま変化しません。 ソリッドなガラス マテリアルを使って結果を薄いガラスと比べると、この様子を確認することができます。
いずれのケースでも、[Refraction Method (屈折方法)] が Index Of Refraction (屈折率) に設定されていない場合、パス トレーサーでは屈折ではなく透過性が使用されます。 透過処理はスキャタリング イベントとはみなされないため、バウンスの回数には数えられません。 これは、これらのモードにラフネスが適用されないことも意味します。
色吸収
ガラスを透過する色 (別名「ベールの法則」) は、ソリッドなガラス マテリアルのマテリアル グラフ内で Absorption Medium マテリアル出力ノードを使用することで制御できます。 この機能は、複数のバウンスによる光線の色の状態を追跡する必要があるため、パス トレーサーのみで使用可能です。
この機能を上記のソリッド ガラスの例に追加するには、次の例のように、いくつかのノードをマテリアルに加えます。
RGB カラーを設定する場合、1 に近い値では吸収は示されません。
上記のマテリアルの例では、Transmittance Color (透過色) を使用して、発生する吸収の量を制御します。 指定された色は、100 単位の距離以降に到達するように正規化されています。 この距離を変更するには、Transmittance Color = Color^(100/Distance) の式を使用します。
薄いガラスでの吸収は、「Thin Translucent Output」ノードを介して制御します。 ここで、透過色は仮想の厚みを基準としているため、距離の制御も相対的なものに簡素化できます。
エネルギー保存
Unreal Engine 5 のエネルギー保存の実装は、金属やガラスのマテリアルのスペキュラ ローブにおけるエネルギー損失を低減するために使用されます。
エネルギー保存 (Energy Conservation) は、[Project Settings (プロジェクト設定)] の [Engine (エンジン)] > [Rendering (レンダリング)] > [Materials (マテリアル)] セクションで有効にできます。
後方互換性を維持するため、現時点でこの機能はデフォルトで無効になっています。 エンジンの今後のリリースでは、この機能はデフォルトで有効にする予定です。
近似コースティクス
パス トレーサーは近似コースティクスのパスを使用し、特にガラスやメタル サーフェスのラフネス値が低い場合にノイズを低減します。 このタイプのマテリアルの場合、反射率が高いコースティクスではさまざまなパターンが生じ、ノイズのないイメージに収束するには現実的でない数のサンプルや時間がかかる可能性があります。
これはたとえば、レンダリングおよびサンプルの蓄積プロセスで画像が順に取得され、処理が完了し、ノイズが除去された結果から最終的な画像が取得された場合などです。
通常、コースティクスはノイズのない結果に収束するまで長い時間がかかるため、パス トレーサーではコンソール コマンド r.PathTracing.ApproximateCaustics 1 を使用し、画像内に表示されるコースティクスを概算することで画像のノイズを低減します。 この変数はデフォルトで有効になっています。
さらに考慮するべき要素として、屈折率の高いコースティクスと近似コースティクスの違いがあります。 ノイズ除去機能を使用すると、収束するのに十分な時間をかけた場合のコースティクスの表示をプレビューできますが、近似コースティクスを使用すると、はるかに短時間で制作に利用しやすい画像を得ることができます。
粗いライトの透過と反射
パス トレーサーは、粗い反射に加えて、粗い透過のレンダリングを可能にする点がユニークです。さらに、パス トレーサーはこれらのシェーダー パラメータを組み合わせています。
以下の例では、ガラス マテリアルのラフネス値によって異なる近似コースティクス、反射の粗さ、キャストされる半透明のシャドウを示します。
スライダをドラッグすると、ガラス マテリアルが粗さのない状態から一定の粗さの間で変化します。 ラフネスの値の範囲は 0 から 0.2 です。
Ray Type Switch Material ノード
Path Tracing Ray Type Switch ノードは、シャドウ、間接スペキュラ、ボリューム、ディフューズ光線のマテリアル情報の置き換えに使用できます。
| 入力オプション | 説明 |
|---|---|
Main | カメラ光線、またはパス トレースされていないシェーディングに使用されます。 |
Shadow | シャドウ光線のパス トレーサーで使用され、非不透明型のブレンド モードを使用するマテリアルのみに適用されます。 |
IndirectDiffuse | 間接ディフューズ光線のパス トレーサーで使用され、光線の色を置き換えます。 |
IndirectSpecular | 間接スペキュラ光線のパス トレーサーで使用され、光線の色を置き換えます。 |
IndirectVolume | 間接ボリューム光線のパス トレーサーで使用され、光線の色を置き換えます。 |
次のシーン例では、Path Tracing Ray Type Switch ノードを使って、不透明型マテリアルと透過マテリアルの 2 つのマテリアルが設定されています。 不透明型マテリアルは球体に適用されて、マテリアルを反射する間接スペキュラを青色で表示し、赤色の球体周辺の間接ライティングは緑色になります。 さらに、透過性のあるチェッカーボード マテリアルでは、そのシャドウがマスクされたテクスチャ サンプルに置き換わります。
ポストプロセス マテリアル バッファ
ポストプロセス マテリアル バッファには、パス トレーサーで使用する追加の出力が含まれています。 これらのバッファには、Path Tracing Buffer Texture (パストレーシング バッファ テクスチャ) マテリアル表現式からアクセスできます。 このノードは、放射輝度、ノイズが除去された放射輝度、アルベド、法線、分散のデータを提供します。 [Details (詳細)] パネルを使用して、マテリアル グラフのノードに適用したいバッファのタイプを選択します。
| プロパティ | 説明 |
|---|---|
Radiance (放射輝度) | 未処理の放射輝度 |
Denoised Radiance (ノイズ除去放射) | パス トレーサーのポスト プロセス設定でノイズ除去が有効になっている場合はノイズが除去された放射輝度が格納され、現在のフレームで完了します。その他の場合は、黒になります。 |
Albedo | 現在のサンプル カウントの平均アルベド |
Normal | 現在のサンプル カウントの平均法線 |
Variance (分散) | 標準派生として格納されるパス トレーシング分散。 分散はチャンネルごとの分散、またはパス トレーシング設定に基づく輝度、アルベド、法線の分散です。 このバッファに接続すると、追加コストが発生します。 |
DBuffer デカール マテリアル表現式
DBuffer マテリアル表現式は、半透明とアルファ コンポジット ブレンド モードだけでなく、より幅広いレスポンスを提供するデカール マテリアルを設定するのに役立ちます。 これらのノードは、DBuffer からテクスチャ データを直接マテリアル グラフに読み取るため、Unreal Engine 4 (UE4) の従来の動作やより複雑なライティングのインタラクションを再現するなど、デカール マテリアルにカスタマイズ可能な柔軟性を提供します。
マテリアルでこれらの式を使用する方法については、Decal Materials (デカール マテリアル) セクションの「DBuffer マテリアル表現式」を参照してください。
便利なコンソール変数
パス トレーサーを使用する場合に、有効にすると便利なコンソール変数の一部を以下に示します。
| コンソール変数 | 説明 |
|---|---|
| すべてのライトをカメラ光線に対して表示します。 デフォルトでは、この変数はエンジンのラスタベース モードに合わせて無効になっていますが、ライトがどのようにモデリングされるのかを把握する場合や、ライトがオーバーラップするケースを特定するのに役立つことがあります。 これを「2」に設定すると、スカイライトのみが表示されます。 |
| この変数はビューに小さい進捗バーを追加し、ピクセルあたりの構成済みサンプルの進捗を表示します。 進捗バーは、蓄積が完了すると自動的に非表示になります。 ムービー レンダリング キューによるレンダリングに影響することはなく、常に有効にしても問題はありません。 これはデフォルトで有効になっています。 |
| このオプションを使用すると、ノイズ除去機能のオンとオフをすばやく切り替えることができます (現在のサンプルの蓄積が完了していると想定した場合)。 ポスト プロセス ボリュームの設定とは異なり、この変数を変更しても蓄積は再始動されません。また、レンダリング済みのフレームを、ノイズ除去機能を有効にしていない場合とすばやく比較するのに役立つことがあります。 |
| このオプションを使用すると、パス トレーサーで異種ボリューム レンダリングを使用できます。 異種ボリュームとパストレーサーの使用方法の詳細については、「異種ボリューム」を参照してください。 |
よくある質問 (FAQ)
HighResShot を使用して収束されたパス トレース画像をキャプチャする
シーンで現在アクティブになっている Samples Per Pixel (ピクセルごとのサンプル数) に等しいコンソール変数 r.HighResScreenshotDelay を使用します。 正しい出力がキャプチャされていることを確認するには、r.PathTracing.ProgressDisplay 設定を 「1」に維持する方法が最適です。 キャプチャした画像に進捗バーが表示されない場合は、サンプルの蓄積が完了しています。
ランタイム時にパス トレーサーを有効にする
パス トレーサーは、サポートされているハードウェアとプラットフォーム上で、Enable Path Tracing ブループリント ノードを使用してランタイム時に起動できます。
Windows で「D3D Device Removed (D3D デバイスが削除されました) クラッシュ」のタイムアウト遅延を回避する
Windows では、GPU カーネルにかかる時間を制限することで、システムの応答性を維持しようと試みます。 ブルート フォース パス トレーシングなどリソースを大量に消費するプロセスでは、特にロー エンド GPU やライト シミュレーションが複雑すぎて妥当な時間で終了できない場合に、この制限を受けやすくなります。
エンジンでは、一度に実行する作業量を制御するために、いくつかのコンソール変数を公開しています。ただし、これらの変数の設定を誤ると、全体的なパフォーマンスが低下することがあります。 stat gpu コマンドを使用して、全体的なパフォーマンスを監視することをお勧めします。
r.PathTracing.DispatchSizeは、パストレースされたレンダリングの最大幅と最大高さをピクセル単位で制御します。 この値がビューポートまたは画像の解像度よりも低い場合は、レンダリングが複数のステップで実行されることがあります。この場合、Windows が GPU が引き続き応答していることを確認できる回数が増えます。 デフォルト値は「2048」です。r.PathTracing.FlushDispatchは、パス トレーシング プロセス中にコマンド リストをフラッシュする頻度を制御します。 これを「1」に設定すると、Windows は GPU が引き続き応答していることを確認する機会が増えます。 デフォルトでは「2」に設定されています。
極端なケースでは、クラッシュを回避しながら適切なパフォーマンスを維持することが困難な場合があります。 そのような場合、Windows のタイムアウト制限自体を変更することができます。 「GPU ドライバー クラッシュを解決する方法」を参照してください。
ヘア (髪) を含むシーンでは、アクセラレーション構造 (BLAS) のタイムアウトが発生することがあります。 その場合は、r.HairStrands.RaytracingProceduralSplits の値を「1」または「2」に下げてみてください。
パス トレース ビューでインスタンスが表示されない
レイ トレーシングはカメラの可視性にも使用されるため、ハードウェア レイ トレーシングのデフォルトのカリング実装は、パス トレーシングのコンテキストにおいては過剰である可能性があります。 パス トレーサー ビューに切り替えたときにインスタンスが欠落しているように見える場合は、 r.RayTracing.Geometry.InstancedStaticMeshes.Culling を 0 に設定してみてください。
パス トレーサーを Nanite が有効なメッシュで使用する
Nanite 有効メッシュのネイティブ パス トレーシングには実験段階のサポートが提供されており、r.RayTracing.Nanite.Mode 1 でこれを有効にできます。 このモードでは Nanite ストリーミング システムを利用して、レイトレースされたメッシュをその都度準備し、フォールバック メッシュのために可能な量以上のディテールを維持します。
また、表現については、パス トレーサーでは Nanite が有効なメッシュのフォールバック メッシュもサポートしています。 フォールバック メッシュでは表現にソース メッシュのトライアングル比率を使用しますが、シーン内での Nanite が有効なメッシュのディテールの低下につながります。 スタティック メッシュ エディタでフォールバック メッシュのディテールを高めるには、Fallback Triangle Percent (フォールバックのトライアングル比率) と Fallback Relative Error (フォールバックの相対誤差) の各パラメータを調整します。
これらの構成の詳細については、Nanite ドキュメントの「フォールバック メッシュ」セクションを参照してください。
複数の GPU のサポートを有効にする
複数の GPU を使用するには Windows 10 バージョン 2004 以降が必要です。
複数の GPU (mGPU) を使ったライティングの計算は、複数の NVIDIA GPU をリンク付けしてまとめる NVIDIA の Scalable Link Interface (SLI) 技術を介してサポートされます。 これにより、パス トレーサーや GPU Lightmass などの主要なハードウェア レイ トレーシング機能を使用したシーンのレンダリングに必要な処理能力が向上されます。
複数の GPU のコンフィギュレーションに対するサポートを有効にするには、次のステップを実行します。
NVLink ブリッジを使って GPU をそれぞれ接続し、NVIDIA のコントロール パネルで SLI を有効にします。
コマンドライン引数
-MaxGPUCount=Nを渡します。ここで N は、利用可能な GPU の数です。 たとえば、-MaxGPUCount=2のように指定します。エディタを開いた状態で、コンソール変数
r.PathTracing.MultiGPU 1を使って複数の GPU のサポートを有効にします。 また、[/Script/Engine.RendererSettings]の下の [Unreal Engine Root]/Engine/Config にある 「DefaultEngine.ini」 ファイルに、このコンソール変数を追加することもできます。
エディタを開いたら、複数の GPU のモードが有効になっていることを [Output Log (アウトプット ログ)] で確認できます。 [LogD3D12RHI: Enabling multi-GPU with 2 nodes] を探します。