RTHandle システム
レンダーターゲットの管理は、すべてのレンダーパイプラインにとって重要な部分です。多数の異なるレンダーテクスチャを使用する相互依存のレンダーパスが多数存在する複雑なレンダーパイプラインでは、メンテナンス性と拡張性に優れ、メモリを簡単に管理できるシステムを確立することが重要です。
特に大きな問題となる状況の 1 つが、レンダーパイプラインで多数の異なるカメラを使用していて、各カメラに独自の解像度が設定されている場合です。例えば、オフスクリーンカメラやリアルタイムのリフレクションプローブが当てはまります。このシナリオでは、システムでカメラごとに個別のレンダーテクスチャを割り当てると、メモリの総量が管理不可能なレベルにまで増える可能性があります。これは特に、多数の中間レンダーテクスチャを使用する複雑なレンダーパイプラインで問題になります。Unity では 一時レンダーテクスチャ を使用できますが、残念ながら一時レンダーテクスチャは、新しいレンダーテクスチャがまったく同じプロパティと解像度を使用する場合にしかメモリを再利用できないため、このようなユースケースには適していません。つまり、2 つの異なる解像度でレンダリングする場合、Unity で使用されるメモリの総量はすべての解像度の合計になります。
レンダーテクスチャのメモリ割り当てに関するこのような問題を解決するために、Unity のスクリプタブルレンダーパイプラインには RTHandle システムが備わっています。このシステムは Unity の RenderTexture API の最上位に位置する抽象レイヤーで、レンダーテクスチャの管理を自動的に処理します。
このセクションには以下のページが含まれています。