Enhanced sky atmosphere with DBC-driven colors, sun lighting, and zone weather

- Skybox now uses DBC sky colors (skyTop/skyMiddle/skyBand1/skyBand2) instead
  of hardcoded C++ color curves, with 3-band gradient and Rayleigh/Mie scattering
- Clouds receive sun direction for lit edges, self-shadowing, and silver lining
- Fixed sun quad box artifact with proper edge fade in celestial shader
- Lens flare attenuated by fog, cloud density, and weather intensity
- Replaced garish green/purple lens flare ghosts with warm natural palette
- Added zone-based weather system for single-player mode with per-zone rain/snow
  configuration, probability-based activation, and smooth intensity transitions
- Server SMSG_WEATHER remains authoritative when connected to a server
This commit is contained in:
Kelsi 2026-02-22 23:20:13 -08:00
parent 085fd09b9d
commit 6563eebb60
18 changed files with 434 additions and 252 deletions

View file

@ -47,8 +47,13 @@ public:
* @param camera The camera to render from
* @param sunPosition World-space sun position
* @param timeOfDay Current time (0-24 hours)
* @param fogDensity Fog density 0-1 (attenuates flare)
* @param cloudDensity Cloud density 0-1 (attenuates flare)
* @param weatherIntensity Weather intensity 0-1 (rain/snow attenuates flare)
*/
void render(VkCommandBuffer cmd, const Camera& camera, const glm::vec3& sunPosition, float timeOfDay);
void render(VkCommandBuffer cmd, const Camera& camera, const glm::vec3& sunPosition,
float timeOfDay, float fogDensity = 0.0f, float cloudDensity = 0.0f,
float weatherIntensity = 0.0f);
/**
* @brief Enable or disable lens flare rendering