再帰的レンダリング
この機能は HD レンダーパイプライン (High Definition Render Pipeline、HDRP) でメッシュをレンダリングするための、置換パイプラインです。このレンダリングモードを使うゲームオブジェクトは、屈折およびリフレクションを再帰的に投影します。つまり、光線が面に当たると、反射または屈折して、続けて他の面に当たるということです。プロジェクトに合わせて、光線がこの動作を行う最大回数を制御できます。
マテリアルのスムースネスは、どのように光線が反射または屈折するかに影響しないため、このレンダリングモードは複数層の透明ゲームオブジェクトのレンダリングに役立ちます。
再帰的レイトレーシングでレンダリングした、車のシフトレバー
再帰的レンダリングの使用
Recursive Rendering は Volume フレームワークを使うため、この機能を有効化しプロパティーを変更するには、シーン内で Recursive Rendering オーバーライドを Volume に追加しなければなりません。手順は以下の通りです。
- シーンまたは Hierarchy ビューで、Volume コンポーネントを含むゲームオブジェクトを選択し、Inspector で表示します。
- Inspector で Add Override > Ray Tracing へ移動し、Recursive Rendering をクリックします。
- Recursive Rendering Volume Override の Inspector で、Enable オプションにチェックマークを入れます。Enable オプションが見つからない場合は、HDRP プロジェクトがレイトレーシングをサポートすることを確認してください。HDRP におけるレイトレーシングの設定に関しては、レイトレーシングの使用を開始する を参照してください。
シーン内で再帰的レンダリングが設定できたら、今度はゲームオブジェクトが Raytracing レンダリングパスを使い、HDRP がそれらに再帰的レンダリングを使うように設定しなければなりません。この手順は以下の通りです。
- シーンビューまたは Hierarchy でゲームオブジェクトを選択し、Inspector で表示します。
- ゲームオブジェクトに設定された Material を選択します。
- Surface Options を開いて、Recursive Rendering (Preview) を有効にします。
なおこれは Shader Graph マスターノードでも実行できます。
- Project ウィンドウで Shader をダブルクリックし、Shader Graph で開きます。
- Graph Inspector の Graph Settings タブで、Surface Options へ移動し、Recursive Rendering (Preview) を有効にします。
再帰的レンダリングは、例えば車のヘッドライトなど、マルチバウンス反射または屈折が必要な状況で利用するのが一番です。再帰的レンダリングは、鏡や水たまりなど、より簡単なシナリオでもレイトレーシングによるリフレクションを生成しますが、ここではパフォーマンスの理由から レイトレーシングによるリフレクション を使うのが一番です。
再帰的レンダリングは独立したレンダーパスを使うため、HDRP は再帰的にレンダリングされたゲームオブジェクトで、その他のレイトレーシングによるエフェクトをレンダリングすることができません。例えば、レイトレーシングによるサブサーフェススキャタリングやレイトレーシングによるシャドウなどのエフェクトをレンダリングすることはできません。
プロパティー
プロパティー | 説明 |
---|---|
LayerMask | HDRP がレイトレーシングによるエフェクトをプロセスするレイヤーを定義します。 |
Max Depth | 光線が停止して最終色に戻る前に、反射または屈折できる最大数を制御します。この値を増やすと、実行時間が指数関数的に増します。 |
Ray Length | HDRP がレイトレーシングに使う光線の長さを制御します。光線が交差点を見つけられなければ、空の色に戻ります。 |
Min Smoothness | ターゲット面のスムースネス値がパラメーターに定義された値を下回る場合に、反射光線が投影されないしきい値を定義します。 |