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>
This commit is contained in:
parent
b9eda646fc
commit
f2b976c976
8 changed files with 89 additions and 21 deletions
|
|
@ -143,7 +143,7 @@ function stream_band(s: Stream, d: int) -> int {
|
|||
# by band and kind. With a real microsecond clock the budget can just be the thing we
|
||||
# actually care about — how long this frame is allowed to spend growing ground cover.
|
||||
# Overshoot is bounded by one chunk, so keep chunks small on the dense near streams.
|
||||
const STREAM_BUDGET_US: int = 2500 # microseconds of generation per frame
|
||||
var STREAM_BUDGET_US: int = 2500 # microseconds of generation per frame; a setting may move it
|
||||
var stream_deadline: long = 0
|
||||
const STREAM_BUDGET: int = 8000 # kept for the work counter only
|
||||
# The worst frame is now bounded by one chunk, not by the budget: stream_fill emits a
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue