static BuildGPULightListResources PrepareBuildGPULightListResources(RenderGraphContext context, BuildGPULightListPassData data) { var buildLightListResources = new BuildGPULightListResources(); buildLightListResources.depthBuffer = context.resources.GetTexture(data.depthBuffer); buildLightListResources.stencilTexture = context.resources.GetTexture(data.stencilTexture); if (data.buildGPULightListParameters.computeMaterialVariants && data.buildGPULightListParameters.enableFeatureVariants) { buildLightListResources.gBuffer = context.renderGraphPool.GetTempArray <RTHandle>(data.gBufferCount); for (int i = 0; i < data.gBufferCount; ++i) { buildLightListResources.gBuffer[i] = context.resources.GetTexture(data.gBuffer[i]); } } buildLightListResources.lightVolumeDataBuffer = data.lightVolumeDataBuffer; buildLightListResources.convexBoundsBuffer = data.convexBoundsBuffer; buildLightListResources.AABBBoundsBuffer = data.AABBBoundsBuffer; buildLightListResources.globalLightListAtomic = data.globalLightListAtomic; buildLightListResources.tileFeatureFlags = context.resources.GetComputeBuffer(data.output.tileFeatureFlags); buildLightListResources.dispatchIndirectBuffer = context.resources.GetComputeBuffer(data.output.dispatchIndirectBuffer); buildLightListResources.perVoxelOffset = context.resources.GetComputeBuffer(data.output.perVoxelOffset); buildLightListResources.perTileLogBaseTweak = context.resources.GetComputeBuffer(data.output.perTileLogBaseTweak); buildLightListResources.tileList = context.resources.GetComputeBuffer(data.output.tileList); buildLightListResources.bigTileLightList = context.resources.GetComputeBuffer(data.output.bigTileLightList); buildLightListResources.perVoxelLightLists = context.resources.GetComputeBuffer(data.output.perVoxelLightLists); buildLightListResources.lightList = context.resources.GetComputeBuffer(data.output.lightList); return(buildLightListResources); }
internal void InvokeGBufferRender(RenderGraphContext context, HDCamera camera, RenderTargetIdentifier[] gBuffer, RTHandle depthBuffer) { if (OnRenderGBuffer == null) { return; } var data = new GBufferRenderData { context = context, camera = camera, gBuffer = gBuffer, depthBuffer = depthBuffer, customPassColorBuffer = m_CustomPassColorBuffer.Value, customPassDepthBuffer = m_CustomPassDepthBuffer.Value }; OnRenderGBuffer.Invoke(data); }
public override void Execute(RenderGraphContext renderGraphContext) { GetExecuteDelegate <PassData>()(data, renderGraphContext); }