feat(render) Campaign FW3.2b-2 step 1: the production leaf adapter
Additive, nothing invokes it yet (the cutover flip is step 2): - WalkProductionLeafRenderer + RetailPViewPassExecutor.WalkLeaf: the walk driver's leaf turns over the SAME executor renderers the packed path uses today - DrawWalkSky (the per-slice sky block looped under one driver turn), DrawWalkTerrainSlice (the terrain block of DrawLandscapeSlice), per-cell shells via EnvCellRenderer, DrawWalkPunchFan (PortalDepthMaskRenderer far-Z, +ShellDrawLiftZ matching today's DrawPortalDepthWrite until FW3.3 retires it), the alpha barrier via FlushLandscapeAlphaFartherThan, and caller-supplied clear/seal actions (the renderer owns the pass scope). The cutover changes ORDER, never leaf mechanics. - Punch fans now carry the ACTIVE VIEW INDEX end to end (retail pins building_view = Render::portal_view_num @0x0059f3bf for the whole two-pass walk; the fan clips by that view's slice planes): PortalPassSink.ActiveViewIndex -> IWalkEventSink.OnPunchGeometry -> IWalkFrameLeafRenderer.DrawPunchFan. - The FW3.2b-2 rooting design is recorded in the plan (dual-compute split, LookInObject route filtered to dynamics, consumer re-pointing, gate list). Suites: full Release build 0 warnings; Walk lane green; hermetic green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
035d7b0148
commit
1b59eae428
6 changed files with 234 additions and 10 deletions
|
|
@ -53,10 +53,10 @@ public sealed class WalkFrameDriverTests
|
|||
|
||||
public void DrawExitSeals() => log.Add("SEALS");
|
||||
|
||||
public void DrawPunchFan(WalkPolygon worldPolygon)
|
||||
public void DrawPunchFan(WalkPolygon worldPolygon, int activeViewIndex)
|
||||
{
|
||||
Punches.Add(worldPolygon);
|
||||
log.Add($"PUNCH:{worldPolygon.Vertices.Length}");
|
||||
log.Add($"PUNCH:{worldPolygon.Vertices.Length}@v{activeViewIndex}");
|
||||
}
|
||||
|
||||
public void AlphaBarrier(float viewerDistance) => log.Add($"ALPHA:{viewerDistance:F2}");
|
||||
|
|
@ -406,7 +406,7 @@ public sealed class WalkFrameDriverTests
|
|||
driver.EndFrame();
|
||||
|
||||
Assert.Equal(
|
||||
new[] { "ALPHA:12.50", "PUNCH:4", "SHELL:00000104", "FLUSH:1:LookInStatic", "FLUSH:1:BuildingShell" },
|
||||
new[] { "ALPHA:12.50", "PUNCH:4@v0", "SHELL:00000104", "FLUSH:1:LookInStatic", "FLUSH:1:BuildingShell" },
|
||||
log);
|
||||
|
||||
// The punch polygon reached the leaf renderer in WORLD space: the
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue