ludic/packages/ludic.render3d/shaders/variants.list
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

63 lines
3.1 KiB
Text

# variants.list - every program render3d builds: vertex|fragment|defines (one line; newlines
# in the defines are written as ";"). A backend that cannot compile shaders at run time
# (Vulkan: SPIR-V is built ahead) must cover all of them. Regenerate by running the game and
# its self-tests with R3D_PROGRAMS_LOG=<file> and sorting the result.
fullscreen.vert|adapt.frag|
fullscreen.vert|bloom_down.frag|
fullscreen.vert|bloom_up.frag|
fullscreen.vert|dof.frag|
fullscreen.vert|heightgen.frag|#define DEM;
fullscreen.vert|ibl_brdf.frag|
fullscreen.vert|ibl_irradiance.frag|
fullscreen.vert|ibl_prefilter.frag|
fullscreen.vert|sharpen.frag|
fullscreen.vert|sky.frag|
fullscreen.vert|ssao_blur.frag|
fullscreen.vert|ssgi.frag|
fullscreen.vert|ternormal.frag|
fullscreen.vert|tershadow.frag|#define NOISE_ONLY;
fullscreen.vert|tershadow.frag|#define NOISE_ONLY;#define TS_AUX;
fullscreen.vert|tonemap.frag|
fullscreen.vert|tonemap.frag|#define HDR10;
fullscreen.vert|volumetric.frag|
grass.mesh|model.frag|#define FOLIAGE;#define BLADE;#define MESH;
grass.vert|model.frag|#define FOLIAGE;#define BLADE;#define GBLADE;
grass.vert|model.frag|#define FOLIAGE;#define BLADE;#define GBLADE;#define TILES;
impostor.vert|impostor.frag|
impostor.vert|impostor.frag|#define SHADOW_PASS;
model.vert|bake.frag|
model.vert|bake.frag|#define CARD;
model.vert|bake.frag|#define FLOWER;
model.vert|depth.frag|#define FOLIAGE;#define WIND;#define ALPHA_TEST;
model.vert|depth.frag|#define FOLIAGE;#define WIND;#define ALPHA_TEST;#define NEAR_FADE;
model.vert|model.frag|
model.vert|model.frag|#define CARD;#define CHEAP;
model.vert|model.frag|#define FOLIAGE;#define WIND;#define ALPHA_TEST;
model.vert|model.frag|#define FOLIAGE;#define WIND;#define ALPHA_TEST;#define NEAR_FADE;
model.vert|model.frag|#define FOLIAGE;#define WIND;#define BLADE;
model.vert|model.frag|#define FOLIAGE;#define WIND;#define CARD;
model.vert|model.frag|#define FOLIAGE;#define WIND;#define EQ_PASS;
model.vert|model.frag|#define FOLIAGE;#define WIND;#define EQ_PASS;#define NEAR_FADE;
model.vert|model.frag|#define FOLIAGE;#define WIND;#define FLOWER;
model.vert|model.frag|#define SHADOW_PASS;#define WIND;#define CARD;
model.vert|model.frag|#define WIND;
model.vert|shadow.frag|#define SHADOW_PASS;
model.vert|shadow.frag|#define SHADOW_PASS;#define WIND;
model.vert|shadow.frag|#define SHADOW_PASS;#define WIND;#define ALPHA_TEST;
overlay.vert|overlay.frag|
overlay.vert|overlay.frag|#define HDR10;
skin.vert|model.frag|
skin.vert|model.frag|#define ALPHA_TEST;
skin.vert|outline.frag|#define OUTLINE;
skin.vert|outline.frag|#define OUTLINE;#define ALPHA_TEST;
skin.vert|shadow.frag|#define SHADOW_PASS;
skin.vert|shadow.frag|#define SHADOW_PASS;#define ALPHA_TEST;
terrain.vert|terrain.frag|
terrain.vert|terrain.frag|#define FAR_ONLY;
terrain.vert|terrain.frag|#define NEAR_ONLY;
terrain.vert|terrain.frag|#define SUN_INLINE;
terrain.vert|terrain.frag|#define SUN_INLINE;#define FAR_ONLY;
terrain.vert|terrain.frag|#define SUN_INLINE;#define NEAR_ONLY;
terrain.vert|tersun.frag|
water.vert|water.frag|
grass_inst.vert|model.frag|#define FOLIAGE;#define BLADE;#define GBLADE;#define GINST;