render3d/shadow: a dressed figure casts one capsule in the far cascades

In cascades 2 and out (receivers from 60 m) a skinned figure of more than
eight pieces - a dressed person, up to 86 of them - casts one capsule its own
height (radius 13% of it) instead of every visible piece: past 60 m nobody
can tell a garment's shadow from the body's. Animals (a piece or two), rigid
props and the near two cascades are unchanged. The capsule is made once.

Aspen view, same main (30ec1722) and foundations (15f1020), 240 frames, twice
a side: shadow draws 1889 -> 1799; shadow GPU 4808/4819 -> 4710/4714 us;
median frame 17200/17221 -> 16910/17128 us. Most of the far cascades' actor
draws turned out to be rigid props (the census's "skinned" counts draws, not
actors), so this is the smaller of the two.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Orkun ÇAKILKAYA 2026-09-29 12:37:24 +03:00
parent 15f1020fb6
commit a1a90e0626
2 changed files with 88 additions and 1 deletions

View file

@ -19,6 +19,9 @@ export state Render3dState {
ac_oq_n: int = 0 # live entries; the array is kept and reused
ac_oq_closed: bool = true
ac_census_at: int = -2
ac_proxy: Mesh = null # the capsule a figure casts in the far cascades (actor.ludic)
ac_proxy_s: floats = null # its scale and its world matrix, made with it
ac_proxy_m: floats = null
ac_lp0: floats = floats(3)
ac_lpx: floats = floats(3)
ac_lpy: floats = floats(3)