Skip to content

Commit e193740

Browse files
kennytannEvergreen
authored andcommitted
[Port] [6000.3] [UUM-136415][6000.6][URP 2D] Add capture pass for recorder
1 parent 48ca792 commit e193740

2 files changed

Lines changed: 16 additions & 3 deletions

File tree

Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawRenderer2DPass.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,14 +110,18 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData
110110
// Early out for preview camera
111111
if (cameraData.cameraType == CameraType.Preview)
112112
isLitView = false;
113+
114+
DebugHandler debugHandler = GetActiveDebugHandler(cameraData);
115+
if (debugHandler != null)
116+
isLitView = debugHandler.IsLightingActive;
113117
#endif
114118

115119
// Preset global light textures for first batch
116120
if (batchIndex == 0)
117121
{
118122
using (var builder = graph.AddRasterRenderPass<SetGlobalPassData>(k_SetLightBlendTexture, out var passData, m_SetLightBlendTextureProfilingSampler))
119123
{
120-
if (layerBatch.lightStats.useLights)
124+
if (layerBatch.lightStats.useLights && isLitView)
121125
{
122126
passData.lightTextures = universal2DResourceData.lightTextures[batchIndex];
123127
for (var i = 0; i < passData.lightTextures.Length; i++)
@@ -168,7 +172,7 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData
168172
builder.UseRendererList(passData.rendererList);
169173
}
170174

171-
if (passData.layerUseLights)
175+
if (passData.layerUseLights && isLitView)
172176
{
173177
passData.lightTextures = universal2DResourceData.lightTextures[batchIndex];
174178
for (var i = 0; i < passData.lightTextures.Length; i++)

Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/Renderer2DRendergraph.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ private struct ImportResourceSummary
5656
CopyDepthPass m_CopyDepthPass;
5757
UpscalePass m_UpscalePass;
5858
CopyCameraSortingLayerPass m_CopyCameraSortingLayerPass;
59+
CapturePass m_CapturePass;
5960
FinalBlitPass m_FinalBlitPass;
6061
FinalBlitPass m_OffscreenUICoverPrepass;
6162
DrawScreenSpaceUIPass m_DrawOffscreenUIPass;
@@ -117,6 +118,7 @@ public Renderer2D(Renderer2DData data) : base(data)
117118

118119
m_UpscalePass = new UpscalePass(RenderPassEvent.AfterRenderingPostProcessing, m_BlitMaterial);
119120
m_CopyCameraSortingLayerPass = new CopyCameraSortingLayerPass(m_BlitMaterial);
121+
m_CapturePass = new CapturePass(RenderPassEvent.AfterRendering);
120122
m_FinalBlitPass = new FinalBlitPass(RenderPassEvent.AfterRendering + k_FinalBlitPassQueueOffset, m_BlitMaterial, m_BlitHDRMaterial);
121123
m_OffscreenUICoverPrepass = new FinalBlitPass(RenderPassEvent.BeforeRenderingPostProcessing, m_BlitMaterial, m_BlitOffscreenUICoverMaterial);
122124

@@ -201,7 +203,8 @@ private RenderPassInputSummary GetRenderPassInputs(UniversalCameraData cameraDat
201203
|| cameraData.cameraTargetDescriptor.msaaSamples > 1 && UniversalRenderer.PlatformRequiresExplicitMsaaResolve()
202204
|| m_Renderer2DData.useCameraSortingLayerTexture
203205
|| !Mathf.Approximately(cameraData.renderScale, 1.0f)
204-
|| (DebugHandler != null && DebugHandler.WriteToDebugScreenTexture(cameraData.resolveFinalTarget));
206+
|| (DebugHandler != null && DebugHandler.WriteToDebugScreenTexture(cameraData.resolveFinalTarget))
207+
|| cameraData.captureActions != null;
205208

206209
return inputSummary;
207210
}
@@ -958,6 +961,12 @@ private void OnAfterRendering(RenderGraph renderGraph)
958961
var finalBlitTarget = resolveToDebugScreen ? commonResourceData.debugScreenColor : commonResourceData.backBufferColor;
959962
var finalDepthHandle = resolveToDebugScreen ? commonResourceData.debugScreenDepth : commonResourceData.backBufferDepth;
960963

964+
// Capture pass for Unity Recorder
965+
if (hasCaptureActions)
966+
{
967+
m_CapturePass.RecordRenderGraph(renderGraph, frameData);
968+
}
969+
961970
if (applyFinalPostProcessing)
962971
{
963972
m_PostProcessPassRenderGraph.RenderFinalPassRenderGraph(renderGraph, frameData, in finalColorHandle, commonResourceData.overlayUITexture, in finalBlitTarget, needsColorEncoding);

0 commit comments

Comments
 (0)