feat(render): Phase A8 — LoadedCell.PortalPolygons field
First slice of the indoor-cell visibility culling pipeline (#78). Adds PortalPolygons: List<Vector3[]> to LoadedCell, parallel-indexed to the existing Portals + ClipPlanes lists. Empty arrays for portals whose polygon could not be resolved. Field is populated in Task 2. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
4cbfbf98af
commit
fee878f292
1 changed files with 14 additions and 0 deletions
|
|
@ -56,6 +56,20 @@ public sealed class LoadedCell
|
|||
/// Derived from portal polygon geometry during cell preparation.
|
||||
/// </summary>
|
||||
public List<PortalClipPlane> ClipPlanes = new();
|
||||
|
||||
/// <summary>
|
||||
/// Portal polygon vertices in cell-local space, one Vector3[] per
|
||||
/// <see cref="CellPortalInfo"/> entry in <see cref="Portals"/>. Index i
|
||||
/// in this list corresponds to index i in <see cref="Portals"/> and
|
||||
/// <see cref="ClipPlanes"/>. An empty array means the portal's polygon
|
||||
/// could not be resolved at load time (degenerate cell or missing
|
||||
/// polygon entry).
|
||||
/// <para>
|
||||
/// Used by the Phase A8 indoor-cell stencil pipeline to build a
|
||||
/// per-frame triangle-fan mesh for portal silhouette masking.
|
||||
/// </para>
|
||||
/// </summary>
|
||||
public List<Vector3[]> PortalPolygons = new();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue