ludic/packages/ludic.render3d/shaders/spv
Orkuncakilkaya ae52e9c4da feat(render3d): anti-aliasing that exists, and a lens for the viewfinder
The shipping default had NO anti-aliasing at all: the temporal resolve was removed, the
setting's first option went on saying "Temporal", and MSAA defaults to one sample, so
every machine without DLSS drew grass and needle cards with nothing smoothing an edge.

FXAA in the sharpen pass, which already reads the neighbourhood and runs last on the LDR
image. No history, so it cannot drag or smear a reflection. 25.5% less single-pixel
staircase on edge pixels.

The trap, recorded because it inverted the result: the unsharp delta must be computed
from the RAW image and only then applied to the anti-aliased colour. Centre from FXAA and
neighbours from the raw texture measures half smoothing and half signal, so the mask
sharpens precisely what FXAA softened - 29% WORSE than no anti-aliasing at all.

Depth of field for the photo mode: a disc whose radius is the circle of confusion,
normalised by focus distance so a landscape shot is not a macro, with taps rejected
unless they are at least as out of focus as the pixel they blur into - which is what
stops a sharp foreground haloing into a blurred background. Between the scene and the
bloom, so a blurred highlight still blooms. Skipped whole when the aperture is shut.

400 frames in ordinary play: GL 7.1 s, VK 7.2 s - the lens does not draw there.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-19 17:38:25 +03:00
..
1b654972.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
1b654972.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
1ce5c5d1.frag.spv fix(render3d): a leaf is not matte 2026-09-19 16:41:33 +03:00
1ce5c5d1.vert.spv fix(shaders): Vulkan SPIR-V keeps the near half of the depth range 2026-09-15 12:05:43 +03:00
1f95f31b.frag.spv fix(render3d): the Bells are maroon - saturation was the knob, not brightness 2026-09-19 16:36:39 +03:00
1f95f31b.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
1fde9cd2.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
1fde9cd2.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
2e2908c8.frag.spv fix(render3d): the Bells are maroon - saturation was the knob, not brightness 2026-09-19 16:36:39 +03:00
2e2908c8.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
2ee6d2e3.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
2ee6d2e3.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
3b183d8f.frag.spv fix(render3d): a leaf is not matte 2026-09-19 16:41:33 +03:00
3b183d8f.vert.spv fix(shaders): Vulkan SPIR-V keeps the near half of the depth range 2026-09-15 12:05:43 +03:00
3e4b62f9.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
3e4b62f9.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
4a8e9f28.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
4a8e9f28.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
4be7acd9.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
4be7acd9.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
4cf96468.frag.spv feat(render3d): anti-aliasing that exists, and a lens for the viewfinder 2026-09-19 17:38:25 +03:00
4cf96468.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
4d4fa91b.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
4d4fa91b.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
4dda406a.frag.spv fix(render3d): a leaf is not matte 2026-09-19 16:41:33 +03:00
4dda406a.vert.spv fix(shaders): Vulkan SPIR-V keeps the near half of the depth range 2026-09-15 12:05:43 +03:00
5e4589a1.frag.spv fix(render3d): the Bells are maroon - saturation was the knob, not brightness 2026-09-19 16:36:39 +03:00
5e4589a1.vert.spv render3d(vulkan): the ground reads the sun cascades itself - no separate terrain sun pass 2026-09-15 17:26:39 +03:00
7ed7de52.frag.spv fix(render3d): a leaf is not matte 2026-09-19 16:41:33 +03:00
7ed7de52.vert.spv feat(render3d): light you can see - sun shafts and valley mist 2026-09-19 16:06:16 +03:00
7f096322.frag.spv fix(render3d): a leaf is not matte 2026-09-19 16:41:33 +03:00
7f096322.vert.spv feat(render3d): light you can see - sun shafts and valley mist 2026-09-19 16:06:16 +03:00
9d3e2ddd.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
9d3e2ddd.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
9dce3246.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
9dce3246.vert.spv fix(shaders): Vulkan SPIR-V keeps the near half of the depth range 2026-09-15 12:05:43 +03:00
46e2325c.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
46e2325c.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
79b77ed9.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
79b77ed9.vert.spv fix(shaders): Vulkan SPIR-V keeps the near half of the depth range 2026-09-15 12:05:43 +03:00
86f427b0.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
86f427b0.vert.spv fix(shaders): Vulkan SPIR-V keeps the near half of the depth range 2026-09-15 12:05:43 +03:00
254e7887.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
254e7887.vert.spv fix(shaders): Vulkan SPIR-V keeps the near half of the depth range 2026-09-15 12:05:43 +03:00
428caa3a.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
428caa3a.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
439a2253.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
439a2253.vert.spv fix(shaders): Vulkan SPIR-V keeps the near half of the depth range 2026-09-15 12:05:43 +03:00
858f5089.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
858f5089.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
01089da8.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
01089da8.vert.spv fix(shaders): Vulkan SPIR-V keeps the near half of the depth range 2026-09-15 12:05:43 +03:00
3733fc38.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
3733fc38.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
5161e6ba.frag.spv feat(render3d): anti-aliasing that exists, and a lens for the viewfinder 2026-09-19 17:38:25 +03:00
5161e6ba.vert.spv feat(render3d): anti-aliasing that exists, and a lens for the viewfinder 2026-09-19 17:38:25 +03:00
9068df1c.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
9068df1c.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
512004a1.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
512004a1.vert.spv fix(shaders): Vulkan SPIR-V keeps the near half of the depth range 2026-09-15 12:05:43 +03:00
638623c2.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
638623c2.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
676965ab.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
676965ab.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
725523d9.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
725523d9.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
74258189.frag.spv feat(render3d): light you can see - sun shafts and valley mist 2026-09-19 16:06:16 +03:00
74258189.vert.spv feat(render3d): light you can see - sun shafts and valley mist 2026-09-19 16:06:16 +03:00
a0f2dbac.frag.spv fix(render3d): the Bells are maroon - saturation was the knob, not brightness 2026-09-19 16:36:39 +03:00
a0f2dbac.vert.spv render3d(vulkan): the ground reads the sun cascades itself - no separate terrain sun pass 2026-09-15 17:26:39 +03:00
a5ad521e.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
a5ad521e.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
a45356c7.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
a45356c7.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
a64015f2.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
a64015f2.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
a4683767.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
a4683767.vert.spv feat(render3d): HDR10 output, and DLSS that stays still 2026-09-15 20:06:18 +03:00
b9fc2041.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
b9fc2041.vert.spv fix(shaders): Vulkan SPIR-V keeps the near half of the depth range 2026-09-15 12:05:43 +03:00
b79a1f4e.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
b79a1f4e.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
b4587cd4.frag.spv fix(render3d): a leaf is not matte 2026-09-19 16:41:33 +03:00
b4587cd4.vert.spv fix(shaders): Vulkan SPIR-V keeps the near half of the depth range 2026-09-15 12:05:43 +03:00
b964507f.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
b964507f.vert.spv fix(shaders): Vulkan SPIR-V keeps the near half of the depth range 2026-09-15 12:05:43 +03:00
bf3151c8.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
bf3151c8.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
bfa15301.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
bfa15301.vert.spv fix(shaders): Vulkan SPIR-V keeps the near half of the depth range 2026-09-15 12:05:43 +03:00
c57b4f14.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
c57b4f14.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
d48d6a48.frag.spv fix(render3d): a leaf is not matte 2026-09-19 16:41:33 +03:00
d48d6a48.vert.spv feat(render3d): mesh-shader grass 2026-09-15 20:20:42 +03:00
e9b6300c.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
e9b6300c.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
e18e40c9.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
e18e40c9.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
e86f78e8.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
e86f78e8.vert.spv feat(render3d): HDR10 output, and DLSS that stays still 2026-09-15 20:06:18 +03:00
f4a2b586.frag.spv fix(render3d): a leaf is not matte 2026-09-19 16:41:33 +03:00
f4a2b586.vert.spv fix(shaders): Vulkan SPIR-V keeps the near half of the depth range 2026-09-15 12:05:43 +03:00
f34dce08.frag.spv feat(render3d): the air and the light are the hour's, not one constant apiece 2026-09-19 14:42:30 +03:00
f34dce08.vert.spv fix(shaders): Vulkan SPIR-V keeps the near half of the depth range 2026-09-15 12:05:43 +03:00
f2952361.frag.spv fix(render3d): the Bells are maroon - saturation was the knob, not brightness 2026-09-19 16:36:39 +03:00
f2952361.vert.spv render3d(vulkan): the ground reads the sun cascades itself - no separate terrain sun pass 2026-09-15 17:26:39 +03:00
f4382918.frag.spv fix(render3d): the Bells are maroon - saturation was the knob, not brightness 2026-09-19 16:36:39 +03:00
f4382918.vert.spv fix(render3d): Vulkan exposure, foliage depth and meadow alpha 2026-09-15 12:29:24 +03:00
manifest.txt feat(render3d): anti-aliasing that exists, and a lens for the viewfinder 2026-09-19 17:38:25 +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