fix #451: stabilize portal seam rendering
All checks were successful
CI / linux-portable (push) Successful in 3m32s
CI / windows-gate (push) Successful in 6m55s
CI / release (push) Successful in 2m12s

This commit is contained in:
Erik 2026-08-27 14:30:21 +02:00
parent f6fe0f2a4f
commit 1d2f2f738f
29 changed files with 1650 additions and 239 deletions

View file

@ -43,6 +43,21 @@ internal readonly record struct WorldRootFrame(
bool PlayerIndoorGate)
{
public bool RenderSky => ViewerRoot is null || RootSeenOutside;
/// <summary>
/// The camera has an EnvCell root whose authored visibility does not reach
/// outdoors. SeenOutside cells are open-air presentation cells, not an
/// indoor environment gate merely because they have portal geometry.
/// </summary>
public bool CameraInsideEnclosedCell => CameraInsideCell && !RootSeenOutside;
/// <summary>Environment gate shared by directional shadows and other
/// outdoor-only render-pack effects.</summary>
public bool PlayerOrCameraInsideEnclosedCell =>
PlayerInsideCell || CameraInsideEnclosedCell;
public bool IsAtmosphericallyOutdoor =>
RenderSky && !CameraInsideEnclosedCell;
}
/// <summary>Borrowed building scratch, valid only until the next build.</summary>