checkpoint(render): preserve pre-overhaul investigation state

This commit is contained in:
Erik 2026-09-01 18:04:24 +02:00
parent e880860291
commit b3b7d922f1
45 changed files with 3168 additions and 619 deletions

View file

@ -345,8 +345,13 @@ internal sealed partial class RetailPViewPassExecutor :
public void DrawExitPortalMask(
RetailPViewFrameInput frame,
RetailPViewCellSliceContext context) =>
DrawPortalDepthWrite(context, frame, forceFarZ: frame.RootCell.IsOutdoorNode);
uint cellId,
ReadOnlySpan<Vector4> clipPlanes) =>
DrawPortalDepthWrite(
cellId,
clipPlanes,
frame,
forceFarZ: frame.RootCell.IsOutdoorNode);
public void DrawUnattachedSceneParticles(
RetailPViewFrameInput frame,
@ -422,7 +427,8 @@ internal sealed partial class RetailPViewPassExecutor :
frame.CameraCellResolution);
private void DrawPortalDepthWrite(
RetailPViewCellSliceContext context,
uint cellId,
ReadOnlySpan<Vector4> clipPlanes,
RetailPViewFrameInput frame,
bool forceFarZ,
int? onlyPortalIndex = null)
@ -432,7 +438,14 @@ internal sealed partial class RetailPViewPassExecutor :
// apertures stamp far depth (punch). The renderer owns that choice.
if (_portalDepthMask is null)
return;
LoadedCell? cell = frame.Cells.Find(context.CellId);
if (!forceFarZ
&& AcDream.Core.Rendering.RenderingDiagnostics
.ProbeCathedralSkipFloatingStairSeals
&& cellId is 0xF4180107u or 0xF4180112u)
{
return;
}
LoadedCell? cell = frame.Cells.Find(cellId);
if (cell is null)
return;
@ -462,7 +475,7 @@ internal sealed partial class RetailPViewPassExecutor :
_diagnostics.EmitSeamMask(
RenderingDiagnostics.ProbeSeamDrawEnabled,
RenderingDiagnostics.SeamDrawTargetCells,
context.CellId,
cellId,
index,
forceFarZ,
world[..count]);
@ -470,7 +483,7 @@ internal sealed partial class RetailPViewPassExecutor :
_portalDepthMask.DrawDepthFan(
world[..count],
frame.ViewProjection,
context.Slice.Planes,
clipPlanes,
forceFarZ);
}
}