acdream/src/AcDream.App/Rendering/Shaders/spv
Erik 0dac024cdb feat(sky): the night sky wheels with the Dereth clock; uniform time fade with a scoped twilight band
Rotation (user-directed): the procedural starfield rotates once per
Dereth day (~2 real hours - constellations visibly wheel through a
night) about a celestial pole ~41 deg above the northern horizon, plus
dayOfYear/360 of seasonal drift so the 360-day year changes the night
sky. One SkyParams float (272-byte block, layout test re-pinned)
carries dayFraction + dayOfYear/360 from the world clock; sky.frag
applies a Rodrigues rotation to the sample direction so stars and
mottle turn together. Impossible with retail's static stretched layer.

Fade rework (the 2026-08-23 two-screenshot gate finding): the
per-vertex vTint signal carried the sun-facing product and blanked
stars across the entire twilight half of the sky. The fade now reads
the UNIFORM ambient term - identical star visibility in every compass
direction, same dusk-to-dawn schedule - with one deliberate exception:
a thin suppression band hugging the low sky toward the sun's azimuth
while the sun term is strong, so stars still wash out inside the
actual twilight glow.

Guards updated (rotation anchor, uniform-fade anchor, 272-byte layout);
both sky SPIR-V hashes re-pinned.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-23 18:21:17 +02:00
..
atmospheric_bloom_blur.frag.spv feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
atmospheric_bloom_blur.vert.spv feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
atmospheric_bloom_downsample.frag.spv feat(render): Atmospheric post stack runs in linear light; neutral preset is numerically the pack-off image (Campaign VM VM3) 2026-08-22 23:10:57 +02:00
atmospheric_bloom_downsample.vert.spv feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
atmospheric_filmic.frag.spv feat(render): Atmospheric post stack runs in linear light; neutral preset is numerically the pack-off image (Campaign VM VM3) 2026-08-22 23:10:57 +02:00
atmospheric_filmic.vert.spv feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
atmospheric_sun_occlusion.frag.spv feat(render): shader ABI v2 - AtmosphericFrame gains clock/wind blocks; caster pass binds it (Campaign VM VM6a) 2026-08-23 00:30:02 +02:00
atmospheric_sun_occlusion.vert.spv feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
atmospheric_sun_rays.frag.spv feat(render): shader ABI v2 - AtmosphericFrame gains clock/wind blocks; caster pass binds it (Campaign VM VM6a) 2026-08-23 00:30:02 +02:00
atmospheric_sun_rays.vert.spv feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
atmospheric_volumetric.frag.spv feat(render): shader ABI v2 - AtmosphericFrame gains clock/wind blocks; caster pass binds it (Campaign VM VM6a) 2026-08-23 00:30:02 +02:00
atmospheric_volumetric.vert.spv feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
debug_line.frag.spv feat(render): put the retained UI and debug lines on both backends 2026-07-28 08:51:32 +02:00
debug_line.vert.spv feat(render): put the retained UI and debug lines on both backends 2026-07-28 08:51:32 +02:00
directional_shadow_terrain.frag.spv feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
directional_shadow_terrain.vert.spv feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
directional_shadow_terrain_multiview.frag.spv feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
directional_shadow_terrain_multiview.vert.spv feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
directional_shadow_world_cutout.frag.spv feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
directional_shadow_world_cutout.vert.spv fix(render): correct foliage-wind classification, receiver/caster desync, and frame binding (Campaign VM VM6 review) 2026-08-23 01:54:36 +02:00
directional_shadow_world_cutout_multiview.frag.spv feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
directional_shadow_world_cutout_multiview.vert.spv fix(render): correct foliage-wind classification, receiver/caster desync, and frame binding (Campaign VM VM6 review) 2026-08-23 01:54:36 +02:00
directional_shadow_world_opaque.frag.spv feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
directional_shadow_world_opaque.vert.spv fix(render): correct foliage-wind classification, receiver/caster desync, and frame binding (Campaign VM VM6 review) 2026-08-23 01:54:36 +02:00
directional_shadow_world_opaque_multiview.frag.spv feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
directional_shadow_world_opaque_multiview.vert.spv fix(render): correct foliage-wind classification, receiver/caster desync, and frame binding (Campaign VM VM6 review) 2026-08-23 01:54:36 +02:00
mesh_atmospheric.frag.spv feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
mesh_atmospheric.vert.spv fix(render): shadow-gated-off receiver frames light from the authored sun again (Campaign VM VM6 review 5) 2026-08-23 03:58:41 +02:00
mesh_detail.frag.spv fix(render): detail overlay is fogged after the combine like retail; VM1 review fixes 2026-08-22 22:39:58 +02:00
mesh_detail.vert.spv fix(render): detail overlay is fogged after the combine like retail; VM1 review fixes 2026-08-22 22:39:58 +02:00
mesh_modern.frag.spv feat(render): V6e — move the world mesh's texture lookup to where Vulkan can express it 2026-07-28 09:21:22 +02:00
mesh_modern.vert.spv feat(render): V6e — move the world mesh's texture lookup to where Vulkan can express it 2026-07-28 09:21:22 +02:00
particle.frag.spv feat(render): V6e — both particle shaders cross the dialect 2026-07-28 09:26:13 +02:00
particle.vert.spv feat(render): V6e — both particle shaders cross the dialect 2026-07-28 09:26:13 +02:00
particle_mesh.frag.spv feat(render): V6e — both particle shaders cross the dialect 2026-07-28 09:26:13 +02:00
particle_mesh.vert.spv feat(render): V6e — both particle shaders cross the dialect 2026-07-28 09:26:13 +02:00
portal_depth.frag.spv feat(render): Campaign V slice V6l commit 2 - the portal mask draws on Vulkan 2026-07-28 17:36:45 +02:00
portal_depth.vert.spv feat(render): Campaign V slice V6l commit 2 - the portal mask draws on Vulkan 2026-07-28 17:36:45 +02:00
shaders.manifest.json feat(sky): the night sky wheels with the Dereth clock; uniform time fade with a scoped twilight band 2026-08-23 18:21:17 +02:00
sky.frag.spv feat(sky): the night sky wheels with the Dereth clock; uniform time fade with a scoped twilight band 2026-08-23 18:21:17 +02:00
sky.vert.spv feat(sky): the night sky wheels with the Dereth clock; uniform time fade with a scoped twilight band 2026-08-23 18:21:17 +02:00
terrain_atmospheric.frag.spv feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
terrain_atmospheric.vert.spv fix(render): shadow-gated-off receiver frames light from the authored sun again (Campaign VM VM6 review 5) 2026-08-23 03:58:41 +02:00
terrain_modern.frag.spv feat(render): Campaign V slice V6f-3 - terrain's atlas reads cross the dialect 2026-07-28 10:14:37 +02:00
terrain_modern.vert.spv fix(render): Campaign V slice V6i-2 commit 1 — the terrain clip block reaches set 1 2026-07-28 13:31:13 +02:00
ui_text.frag.spv feat(render): put the retained UI and debug lines on both backends 2026-07-28 08:51:32 +02:00
ui_text.vert.spv feat(render): put the retained UI and debug lines on both backends 2026-07-28 08:51:32 +02:00
vk_probe.frag.spv feat(render): Campaign V slice V6c - SPIR-V, pipelines, passes, and a Vulkan frame that draws 2026-07-28 08:17:24 +02:00
vk_probe.vert.spv feat(render): Campaign V slice V6c - SPIR-V, pipelines, passes, and a Vulkan frame that draws 2026-07-28 08:17:24 +02:00