refactor(render): Phase U.1 — delete two-pipe inside-out machinery
Remove IndoorCellStencilPipeline + portal_stencil shaders, RenderInsideOutAcdream, RenderOutsideInAcdream, the A8-perf instrumentation, the cameraInsideBuilding / ACDREAM_A8_INDOOR_BRANCH branch, and the dead EntitySet partition values. Collapse the render branch to the default Draw(All) path (U.4a replaces it with the gated unified pass). Keep all audited EnvCellRenderer / BuildingLoader / CellVisibility / camera-collision fixes. Also deleted with the partition: the two test-only walk helpers (WbDrawDispatcher.WalkEntitiesForTest / WalkEntitiesForTestByCellIds) and their test files (WbDrawDispatcherEntitySetTests, WbDrawDispatcherCellIdsOverloadTests), which existed solely to exercise the removed IndoorPass/OutdoorScenery/ BuildingShells/LiveDynamic partition. EntityMatchesSet / IsShellScopedSet collapse to the All-path constants; the set: parameter is retained as a seam for the unified pass. Note: the depth-clear-if-inside default-path workaround was removed per the U.1 task list — any current indoor-wall degradation persists until a later Phase U task lands the unified pass (expected, not a regression introduced here). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
0f7b395be1
commit
3fc77be5de
8 changed files with 37 additions and 2612 deletions
|
|
@ -1,25 +0,0 @@
|
|||
#version 430 core
|
||||
//
|
||||
// Phase A8 — portal stencil mark + far-depth punch.
|
||||
//
|
||||
// uWriteFarDepth = 0 → pass through gl_FragCoord.z (used for the
|
||||
// stencil mark pass; depth mask is off anyway).
|
||||
// uWriteFarDepth != 0 → write gl_FragDepth = 1.0 (the far-depth punch
|
||||
// pass; depth mask is on, color is off).
|
||||
//
|
||||
// Matches WorldBuilder's PortalStencil.frag at
|
||||
// references/WorldBuilder/Chorizite.OpenGLSDLBackend/Shaders/PortalStencil.frag
|
||||
|
||||
uniform int uWriteFarDepth;
|
||||
|
||||
void main()
|
||||
{
|
||||
if (uWriteFarDepth != 0)
|
||||
{
|
||||
gl_FragDepth = 1.0;
|
||||
}
|
||||
else
|
||||
{
|
||||
gl_FragDepth = gl_FragCoord.z;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
#version 430 core
|
||||
//
|
||||
// Phase A8 - portal stencil mark + far-depth punch.
|
||||
//
|
||||
// Position is in WORLD space (pipeline transforms cell-local portal
|
||||
// polygon vertices through cell.WorldTransform on the CPU before
|
||||
// uploading to the VBO). Output is clip space via uViewProjection.
|
||||
|
||||
layout(location = 0) in vec3 aPosition;
|
||||
|
||||
uniform mat4 uViewProjection;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec4 pos = uViewProjection * vec4(aPosition, 1.0);
|
||||
|
||||
// Match WorldBuilder's PortalStencil.vert: keep portal polygons stable
|
||||
// when the chase camera straddles an exit portal plane. Without this,
|
||||
// near-zero clip W can explode the screen-space portal mask and let the
|
||||
// Step 4 terrain pass punch into indoor floor/wall pixels for a frame.
|
||||
if (abs(pos.w) < 0.001)
|
||||
pos.w = pos.w < 0.0 ? -0.001 : 0.001;
|
||||
|
||||
gl_Position = pos;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue