Open2

URP17/RenderGraph雑記

さんしょくぎょかいさんしょくぎょかい

Pass内でCommandBuffer.SetGlobal〇〇系をする場合builder.AllowGlobalStateModification(true);する必要がある。

using (var builder = renderGraph.AddRasterRenderPass<PassData>(profilerTag, out var passData))
{
    passData.globalHogeValue = 0.5f;

    //Pass内でGlobalの操作を行う場合は、trueにする必要がある
    builder.AllowGlobalStateModification(true);

    builder.SetRenderFunc((PassData data, RasterGraphContext context) =>
    {
        using (new ProfilingScope(context.cmd, profilingSampler))
        {
            // Globalの操作
            context.cmd.SetGlobalFloat("_HoveValue", data.globalHogeValue);
        }
    });
}