ludic/packages/ludic.render3d
Orkuncakilkaya a1a90e0626 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>
2026-09-29 12:37:24 +03:00
..
lib/macos-arm64 feat(render3d): 22.10 - ludic.render3d carries MoltenVK, so a Mac program has its Vulkan driver 2026-09-28 01:16:26 +03:00
native feat(render3d): 22.10 - ludic.render3d carries MoltenVK, so a Mac program has its Vulkan driver 2026-09-28 01:16:26 +03:00
shaders render3d/foliage: a small plant is occluded by the sward it stands in, so it no longer glows at night 2026-09-29 12:19:10 +03:00
actor.ludic render3d/shadow: a dressed figure casts one capsule in the far cascades 2026-09-29 12:37:24 +03:00
assets.manifest feat(gl): OpenGL 4.1 and the ludic.render3d renderer 2026-09-10 03:31:12 +03:00
camera.ludic render3d: scratch the frame uses is made with the state, not on first use 2026-09-28 16:30:17 +03:00
daylight.ludic packages: ludic.ui's render3d backend threads Render3dState; render3d's settable vars (r3d_dem_path, post_*, grass_*, wt_wade_*, ...) are Render3dState's fields again, not lets 2026-09-25 17:11:15 +03:00
drawstats.ludic r3d/runtime: allocs, keeps and births at 0 on this side 2026-09-28 20:10:59 +03:00
env.ludic render3d/shadow: a dressed figure casts one capsule in the far cascades 2026-09-29 12:37:24 +03:00
FEATURES.md r3d/runtime: allocs, keeps and births at 0 on this side 2026-09-28 20:10:59 +03:00
fmath.ludic r3d/runtime: allocs, keeps and births at 0 on this side 2026-09-28 20:10:59 +03:00
gltf.ludic render3d: a model owns its skin - @creates(Skin) skin_load, @releases(Skin) skin_free, @owns on Model.skin 2026-09-28 17:09:00 +03:00
gltf_cached.ludic render3d: 671 frame-reachable allocation sites to 161 - declared, split, or made nothing 2026-09-28 15:58:18 +03:00
gltf_release.ludic render3d: @creates / @releases on its handles 2026-09-28 16:58:31 +03:00
gpu.ludic r3d/runtime: allocs, keeps and births at 0 on this side 2026-09-28 20:10:59 +03:00
gpu_manifest.ludic render3d: start-up declared, ov_nine and the caster test on buffers made once - 362 frame sites to 122 2026-09-28 16:21:51 +03:00
gpu_vk.ludic r3d/runtime: allocs, keeps and births at 0 on this side 2026-09-28 20:10:59 +03:00
gpu_vk_bc.ludic feat(render3d): 23.3 - a .dds beside a .png is uploaded BC-compressed with its whole mip chain 2026-09-28 01:23:45 +03:00
gpu_vk_draw.ludic render3d: gvk_read_screen reads back into one buffer kept in the state 2026-09-29 12:09:11 +03:00
gpu_vk_res.ludic r3d/runtime: allocs, keeps and births at 0 on this side 2026-09-28 20:10:59 +03:00
grass.ludic render3d: start-up declared, ov_nine and the caster test on buffers made once - 362 frame sites to 122 2026-09-28 16:21:51 +03:00
grass_gpu.ludic render3d: start-up declared, ov_nine and the caster test on buffers made once - 362 frame sites to 122 2026-09-28 16:21:51 +03:00
hooks.ludic wip(0.S3): packages and examples migrated again from their pre-0.S sources in one run 2026-09-25 15:31:34 +03:00
mesh.ludic render3d: @owns on the handles records hold 2026-09-28 17:08:15 +03:00
overlay.ludic render3d: frame keeps 32 to 16 - tables and queues sized at start-up, the rest declared; birth leaks freed 2026-09-28 16:46:17 +03:00
package.ludic feat(render3d): 22.10 - ludic.render3d carries MoltenVK, so a Mac program has its Vulkan driver 2026-09-28 01:16:26 +03:00
post.ludic render3d: to its floor - messages in declared helpers, post and DLSS set up at start, lists sized 2026-09-28 16:36:44 +03:00
prof.ludic render3d: start-up declared, ov_nine and the caster test on buffers made once - 362 frame sites to 122 2026-09-28 16:21:51 +03:00
programs.ludic r3d/runtime: allocs, keeps and births at 0 on this side 2026-09-28 20:10:59 +03:00
quat.ludic r3d/runtime: allocs, keeps and births at 0 on this side 2026-09-28 20:10:59 +03:00
r3d.ludic Merge branch 'lang/chunks' into lang/uifree - the ground's heights by chunk and its Jolt ground per chunk; both new render checks kept (steady, chunks) 2026-09-28 11:55:55 +03:00
render.ludic render3d: frame keeps 32 to 16 - tables and queues sized at start-up, the rest declared; birth leaks freed 2026-09-28 16:46:17 +03:00
safe_api.ludic wip(0.S3): packages and examples migrated again from their pre-0.S sources in one run 2026-09-25 15:31:34 +03:00
scatter.ludic r3d/runtime: allocs, keeps and births at 0 on this side 2026-09-28 20:10:59 +03:00
shadow.ludic r3d/runtime: allocs, keeps and births at 0 on this side 2026-09-28 20:10:59 +03:00
skin.ludic r3d/runtime: allocs, keeps and births at 0 on this side 2026-09-28 20:10:59 +03:00
sky.ludic render3d: start-up declared, ov_nine and the caster test on buffers made once - 362 frame sites to 122 2026-09-28 16:21:51 +03:00
stream.ludic r3d/runtime: allocs, keeps and births at 0 on this side 2026-09-28 20:10:59 +03:00
streamline.ludic render3d: frame keeps 32 to 16 - tables and queues sized at start-up, the rest declared; birth leaks freed 2026-09-28 16:46:17 +03:00
terrain.ludic render3d: to its floor - messages in declared helpers, post and DLSS set up at start, lists sized 2026-09-28 16:36:44 +03:00
terrain_chunks.ludic feat(render3d): terrain_chunk_heights - the ground's B-spline heights a chunk at a time (23.5) 2026-09-28 11:25:21 +03:00
texture.ludic r3d/runtime: allocs, keeps and births at 0 on this side 2026-09-28 20:10:59 +03:00
texture_dds.ludic render3d: 671 frame-reachable allocation sites to 161 - declared, split, or made nothing 2026-09-28 15:58:18 +03:00
water.ludic render3d/water: the saved camera's two views made once, not with each reflection target 2026-09-28 23:47:25 +03:00