docs(render): Phase W Stage 4 — verify ceiling-sealed / terrain-viewpoint / GL-state + ParentCellId
T4.4: annotate EnvCellRenderer.RegisterCell to document that ceilings are present by construction. PrepareCellStructMeshData iterates ALL CellStruct.Polygons (floor + walls + ceiling) with no surface filter; retail PView::DrawCells draws the same closed-box drawing_bsp. No ceiling filtering confirmed. T4.2: annotate TerrainModernRenderer.Draw to document that terrain projects from the passed-in ICamera (uView + uProjection derive from the same camera as all other renderers). No separate landscape viewpoint exists that could desync from the eye. T4.5, T5.1, T5.2: pure verification — no code changes (see report). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
a8b831c23b
commit
872dd34943
2 changed files with 12 additions and 0 deletions
|
|
@ -260,6 +260,12 @@ public sealed unsafe class TerrainModernRenderer : IDisposable
|
|||
}
|
||||
|
||||
// Bind shader + uniforms + atlas handles.
|
||||
// Verified Phase W Stage 4 (T4.2): terrain projects from the camera view-proj;
|
||||
// no separate landscape viewpoint to sync. Both uView and uProjection derive
|
||||
// from the ICamera passed into this method — the same camera used for all other
|
||||
// renderers in the unified pipeline. Retail's LScape::update_viewpoint
|
||||
// pre-positions terrain to the outdoor landcell, but acdream uses the
|
||||
// unified camera matrix everywhere, so no separate viewpoint divergence can occur.
|
||||
_shader.Use();
|
||||
_shader.SetMatrix4("uView", camera.View);
|
||||
_shader.SetMatrix4("uProjection", camera.Projection);
|
||||
|
|
|
|||
|
|
@ -312,6 +312,12 @@ public sealed unsafe class EnvCellRenderer : IDisposable
|
|||
|
||||
// 2. Trigger mesh prep for the cell geometry on ObjectMeshManager.
|
||||
// This populates ObjectMeshManager._renderData[cellGeomId] when complete.
|
||||
// Verified Phase W Stage 4 (T4.4): ceilings are present by construction.
|
||||
// PrepareCellStructMeshData iterates ALL polygons in CellStruct.Polygons
|
||||
// (floor + 4 walls + ceiling, as authored in the EnvCell dat mesh) with NO
|
||||
// surface filter — every polygon that passes the ≥3-vertex check is added to
|
||||
// the batch. Retail PView::DrawCells draws cell->structure->drawing_bsp which
|
||||
// is the same closed-box structure. No ceiling polygons are dropped.
|
||||
_ = _meshManager.PrepareEnvCellGeomMeshDataAsync(cellGeomId, envCell.EnvironmentId,
|
||||
envCell.CellStructure, envCell.Surfaces);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue