Skip to content

fix(fp): junction furniture leaves the shadow pass on the web tier - #145

Merged
KunalSiyag merged 1 commit into
mainfrom
droid/web-shadow-pass
Oct 30, 2026
Merged

KunalSiyag merged 1 commit into
mainfrom
droid/web-shadow-pass

Conversation

@KunalSiyag

Copy link
Copy Markdown
Owner

Summary

  • Junction furniture (signal/sign kit instances and the GLB children of the ranged assets) leaves the shadow-caster set on the web quality tier (vis_mult < 1.0), closing the last unranged-shadow draw lane the day-10 census found.
  • _mi()'s visibility range now scales with the quality preset (VIS_PROP * vis_mult), matching _range_asset() — the two paths disagreed since fix(fp): range traffic signals and signs by view distance #128.
  • No visual change on desktop (vis_mult == 1.0): ranges and cast_shadow sets are identical there; construction sites were verified shadow-tight already by probe (small parts opt out, static merge buckets the rest).

Evidence

Validation

  • tools/gate.sh quick + full green (GATE_RETRIES=1) on the rebased commit.
  • python3 -m pytest --no-cov, tools/checks/run_all.py, pre-commit run --all-files green.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

Each shadow caster is a shadow-pass draw, and a signal lens or sign face
casts nothing a walker reads. On the web tier (vis_mult < 1) _range_asset
now strips cast_shadow from the GLB children and the kit parts (_mi) no
longer cast; the kit range also scales by vis_mult there, closing the gap
fix #128 left between _mi (absolute VIS_PROP) and _range_asset (scaled).
Desktop and orbit are unchanged.

Sites needed nothing: their small parts already ask for shadow=false and
the static merge buckets the rest, so the caster set is identical across
tiers (verified by probe).

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown

Automated review

No new findings on the 3 changed files (gdlint, complexity, TODO policy, dead code).

Run python3 tools/checks/run_all.py locally for the full set of checks.

@KunalSiyag
KunalSiyag merged commit ee4dadf into main Oct 30, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant