パストレーシング
パストレーシングは、カメラから光線を送り、光線が反射または屈折面に当たるときに、光源に達するまでプロセスを再帰呼び出しする、レイトレーシングアルゴリズムです。カメラからライトへの一連の光線が、"パス" を形成します。
HDRP が単一の未定義のプロセスで、多くの異なるエフェクト (ハードまたはソフトシャドウ、ミラーまたは光沢のあるリフレクションおよび屈折、および間接照明) を演算できるようになります。
パストレーシングに関する顕著な弱点は、ノイズです。ただし、より多くのパスが蓄積するにつれてノイズは消え、最終的に綺麗な画像に向けて収束します。
Maximum Samples が 1 に設定された雑音画像
Maximum Samples が 256 に設定された綺麗な画像
HD レンダーパイプライン (High Definition Render Pipeline、HDRP) におけるパストレーシングの現在の実装は、カメラが動かない限り、最大数まで各ピクセルにパスを蓄積します。カメラが動くと、HDRP はパスの蓄積を再開します。パストレーシングは、Lit、LayeredLit、および Unlit マテリアルと、ポイント、ディレクショナルライト、および環境光をサポートします。
パストレーシングを設定する
パストレーシングは一般的な要件と設定をその他のレイトレーシングエフェクトと共有しますので、ハードウェア要件および設定に関する情報については、レイトレーシングの使用を開始する を参照してください。この設定は、シーンにパストレーシングを追加する前に実行してください。
シーンにパストレーシングを追加する
パストレーシングは Volume フレームワークを使うため、この機能を有効化しプロパティーを変更するには、シーン内で Path Tracing オーバーライドを Volume に追加しなければなりません。手順は以下の通りです。
- シーンまたは Hierarchy ビューで、Volume コンポーネントを含むゲームオブジェクトを選択し、Inspector で表示します。
- Inspector で Add Override > Ray Tracing > Path Tracing を選択します。
- Path Tracing Volume Override の Inspector で、Enable オプションにチェックマークを入れます。Enable オプションが見つからない場合は、HDRP プロジェクトがレイトレーシングをサポートするか確認してください。HDRP におけるレイトレーシングの設定については、レイトレーシングの使用を開始する を参照してください。これで HDRP をパストレーシングによるレンダリングに切り替えることができ、最初は雑音画像が綺麗な結果に収束されるようになります。
- 画像が時間がたっても収束しない場合は、エフェクトトグルの横にあるドロップダウンを選択して、Always Refresh を選択してください。
プロパティー
プロパティー | 説明 |
---|---|
Maximum Samples | 最終画像に蓄積するフレーム数を設定します。シーンの下に進捗バーがあり、この値の現在の蓄積量が表示されます。 |
Minimum Depth | 各パス内の光の反射の最小数を設定します。 |
Maximum Depth | 各パスの光の反射の最大数を設定します。Minimum Depth より低く設定することはできません。 ノート: 直接光のみが必要な場合は、この値と Minimum Depth を 1 に設定できます。間接光 (2 番目の反射でのみ見える) だけ可視化したい場合は、両方の値を 2 に設定できます。 |
Maximum Intensity | 各反射が返す、光の強度値を固定する値を設定します。最終結果に極端に明るく、孤立したピクセルが存在しなくなります。 ノート: このプロパティーは最終画像を薄暗くしますので、結果が暗く見える場合はこのプロパティーの値を増やしてください。 |
Minimum Depth を 1 、Maximum Depth を 2 に設定: 直接および間接光 (1 反射)
Minimum Depth を 1 、Maximum Depth を 1 に設定: 直接光のみ
Minimum Depth を 2 、Maximum Depth を 2 に設定: 間接光のみ (1 反射)
制限
このセクションには、HDRP のパストレーシング実装の制限に関する情報が含まれています。主にパストレーシングによるレンダーパイプラインではサポートされず、ラスタライズされたレンダーパイプラインで HDRP がサポートする機能のリストになります。
サポートされないパストレーシングの機能
現在、DX12 以外のプラットフォームにおけるパストレーシングのサポートはありません。
Unity 2020.2 の HDRP パストレーシングには、以下の制限があります。
- シーンのメッシュに
HDRenderPipeline
タグを持たないマテリアルが割り当てられている場合、シーン内でメッシュは表示されません。詳細は、レイトレーシングとメッシュ を参照してください。 - 3D Text and TextMeshPro はサポートしません。
- 派生物を使う Shader Graph ノードはサポートしません (例えばテクスチャから派生する法線マップなど)。
- デカールはサポートしません。
- テッセレーションはサポートしません。
- Tube and Disc-shaped Area Lights はサポートしません。
- Translucent Opaque Materials はサポートしません。
- サポートしない HDRP のマテリアルがいくつかあります。Fabric、Eye、StackLit、Hair、Decal が該当します。
- ピクセルごとのディスプレイスメントはサポートしません (パララックスオクルージョンマッピング、ハイトマップ、深度オフセット)。
- MSAA はサポートしません。
- LODs のあるレンダラーに関しては、レイトレーシング加速構造には、ハイトレベル LOD のみを含み、LOD の低いものは無視します。
- Graphics.DrawMesh はサポートしません。
- Streaming Virtual Texturing はサポートしません。