ユニバーサルレンダーパイプライン (URP) が現在のフレーム用に作成したテクスチャ (例えば、アクティブカラーバッファや G バッファテクスチャ) を取得して、レンダーパスで使用できます。
これらのテクスチャは、フレームデータ、リソースデータ、またはフレームリソースと呼ばれます。このドキュメントでは、これらのテクスチャをフレームデータと呼びます。
カスタムレンダーパスを URP フレームレンダリングループに挿入するために、どの投入ポイントを使用するかによって、フレームデータに存在しないテクスチャもあります。どのような場合に、どのテクスチャが存在するかについては、投入ポイントのリファレンス を参照してください。
フレームデータは、RecordRenderGraph メソッドをオーバーライドするときに URP から提供される ContextContainer オブジェクトにあります。
フレームデータのテクスチャのハンドルを取得するには、以下の手順に従います。
ContextContainer オブジェクトの Get メソッドを使用して、すべてのフレームデータを UniversalResourceData オブジェクトとして取得します。
例:
public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer frameContext)
{
using (var builder = renderGraph.AddRasterRenderPass<PassData>("Get frame data", out var passData))
{
UniversalResourceData frameData = frameContext.Get<UniversalResourceData>();
}
}
フレームデータのテクスチャのハンドルを取得します。
例えば、アクティブカラーテクスチャのハンドルを以下のように取得します。
TextureHandle activeColorTexture = frameData.activeColorTexture;
その後、テクスチャの読み込みと書き込みが可能になります。レンダーパスでテクスチャを使用する を参照してください。
テクスチャハンドルは、現在のフレームで現在のレンダーグラフに対してのみ有効です。
ConfigureInput API を使用して、URP がフレームデータに必要なテクスチャを生成することができます。
完全な例については、TextureReference w.FrameData という例を ユニバーサルレンダーパイプライン (URP) のパッケージサンプル で参照してください。