ludic/changes/quality-switches.md
Orkuncakilkaya f2b976c976 feat(render3d): load steps for a loading screen, four quality switches, and the ring's uniform usage
- r3d_open opens the window with nothing baked; r3d_load_count / r3d_load_step run the rest (sky
  and light, terrain, shadow and screen targets, cover and actors, grass) so a game can present a
  loading frame between them. r3d_init is the same calls in a row.
- sky_set_quality(width): the prefiltered sky light at 256 / 512 / 1024, baked again.
- post_set_msaa(samples): multisampling on OpenGL, remade in place (post_msaa_live is false on
  Vulkan); post_free frees the multisampled framebuffer too.
- STREAM_BUDGET_US is a variable; r3d_fog_scale multiplies the fog the day sets.
- Vulkan buffers carry UNIFORM_BUFFER usage: the frame's ring is bound as uniform buffers and was
  created without it (VUID-VkWriteDescriptorSet-descriptorType-00330, found on MoltenVK).

OpenGL frames at the five viewpoints unchanged; the game's 59 self-tests pass.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 14:46:55 +03:00

633 B

bump: minor type: feat More of the renderer's quality is a switch a game can offer.

  • sky_set_quality(width): the prefiltered sky light at 256, 512 or 1024 wide (half as tall), baked again at once.
  • post_set_msaa(samples): 1, 2 or 4 samples for the scene on OpenGL, remaking the screen targets in place (post_msaa_live() is false on Vulkan, which has no sample counts yet); post_free now frees the multisampled framebuffer too.
  • STREAM_BUDGET_US is a variable: the microseconds a frame may spend generating streamed cover.
  • r3d_fog_scale: a multiplier over the fog density the daylight and the weather set.