ludic/packages/ludic.render3d/shaders/spv
Orkuncakilkaya c5e58d14ea render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F
The DEM (R16 with mips, 44 MB) was read only by terrain_generate and kept for the map's life; a
world swap loads its own again. The height-field sun shadow was one RGBA32F for three values and an
unused fourth: the lowest lit height stays 32-bit (a receiver 3000 m up compares against it to a
quarter metre), the occluder distance and the cloud mask go beside it in RG16F (64 -> 32 MB), baked
in a pass of their own (TS_AUX): a pipeline takes one colour format for all its targets, and drawn
together into R32F + RG16F the writes went nowhere and nothing was lit.

-75 MB at every fog level, off included (2008 -> 1933 MB at the overlook); the fog-off frame is
unchanged (0 pixels over 8).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 16:48:26 +03:00
..
1b654972.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
1b654972.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
1ce5c5d1.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
1ce5c5d1.vert.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
1f95f31b.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
1f95f31b.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
1fde9cd2.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
1fde9cd2.vert.spv feat(render3d): an aspen quakes, and a tree is no longer bent like a bow 2026-09-19 21:13:42 +03:00
2e2908c8.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
2e2908c8.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
2ee6d2e3.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
2ee6d2e3.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
3a1797ab.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
3a1797ab.vert.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
3b183d8f.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
3b183d8f.vert.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
3e4b62f9.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
3e4b62f9.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
4a8e9f28.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
4a8e9f28.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
4be7acd9.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
4be7acd9.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
4cf96468.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
4cf96468.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
4d4fa91b.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
4d4fa91b.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
4dda406a.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
4dda406a.vert.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
5e70d731.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
5e70d731.vert.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
5e4589a1.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
5e4589a1.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
9d3e2ddd.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
9d3e2ddd.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
9dce3246.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
9dce3246.vert.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
46e2325c.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
46e2325c.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
79b77ed9.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
79b77ed9.vert.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
86f427b0.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
86f427b0.vert.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
254e7887.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
254e7887.vert.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
266d2401.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
266d2401.vert.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
428caa3a.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
428caa3a.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
439a2253.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
439a2253.vert.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
858f5089.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
858f5089.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
01089da8.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
01089da8.vert.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
3733fc38.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
3733fc38.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
5161e6ba.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
5161e6ba.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
9068df1c.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
9068df1c.vert.spv feat(render3d): an aspen quakes, and a tree is no longer bent like a bow 2026-09-19 21:13:42 +03:00
512004a1.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
512004a1.vert.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
638623c2.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
638623c2.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
676965ab.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
676965ab.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
725523d9.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
725523d9.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
74258189.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
74258189.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
a0f2dbac.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
a0f2dbac.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
a5ad521e.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
a5ad521e.vert.spv feat(render3d): an aspen quakes, and a tree is no longer bent like a bow 2026-09-19 21:13:42 +03:00
a45356c7.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
a45356c7.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
a64015f2.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
a64015f2.vert.spv feat(render3d): an aspen quakes, and a tree is no longer bent like a bow 2026-09-19 21:13:42 +03:00
a4683767.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
a4683767.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
b8cff226.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
b8cff226.vert.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
b9fc2041.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
b9fc2041.vert.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
b20fdcb5.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
b20fdcb5.vert.spv feat(render3d): the meadow's blades are culled on the GPU - under 1.5 ms of a MoltenVK frame for all the grass 2026-09-27 15:47:36 +03:00
b79a1f4e.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
b79a1f4e.vert.spv feat(render3d): an aspen quakes, and a tree is no longer bent like a bow 2026-09-19 21:13:42 +03:00
b603a056.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
b603a056.vert.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
b4587cd4.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
b4587cd4.vert.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
b964507f.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
b964507f.vert.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
bf3151c8.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
bf3151c8.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
bfa15301.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
bfa15301.vert.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
c57b4f14.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
c57b4f14.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
cb13f3c6.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
cb13f3c6.vert.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
d48d6a48.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
d48d6a48.vert.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
e9b6300c.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
e9b6300c.vert.spv feat(render3d): an aspen quakes, and a tree is no longer bent like a bow 2026-09-19 21:13:42 +03:00
e18e40c9.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
e18e40c9.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
e86f78e8.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
e86f78e8.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
f4a2b586.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
f4a2b586.vert.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
f34dce08.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
f34dce08.vert.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
f2952361.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
f2952361.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
f4382918.frag.spv render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
f4382918.vert.spv feat(render3d): one wind, and everything in the valley is moved by it 2026-09-19 18:24:43 +03:00
grass_cull.comp.spv perf(render3d): the terrain's height and normal in R32F + RG16F, 128 MB where one RGBA32F was 256 2026-09-28 02:31:18 +03:00
grass_reset.comp.spv feat(render3d): the meadow's blades are culled on the GPU - under 1.5 ms of a MoltenVK frame for all the grass 2026-09-27 15:47:36 +03:00
manifest.txt render3d: the survey DEM is let go once the height field is made, and the terrain sun shadow is R32F + RG16F 2026-09-29 16:48:26 +03:00
probe.comp.spv feat(render3d): compute and indirect draws on Vulkan, and tree layers culled on the GPU (opt-in) 2026-09-15 14:19:43 +03:00
scatter_cull.comp.spv render3d(vulkan): GPU-driven trees - one merged mesh per material, one draw per material; on by default 2026-09-15 16:44:00 +03:00