render3d: ground layers placed from painted densities - the density tiles (LGD1), their reader and the fill
ground_density_bake(path, key, version, hash, pngs) cuts each layer's PNG (R the chance a cell keeps one, G an optional scale) into the terrain's 64 m tiles, one layer decoded and let go at a time, as a bake's file; ground_density_open(...) reads it - or, when it is missing or stale, a dev build's own copy cut from the PNGs - a tile at a time into a 256-tile clock, never a layer whole. ground_fill(s, cx, cz, band, g) places a GroundFill row's instances in a stream chunk: a candidate per cell of the band's step, jittered, kept when a hash of (layer, chunk, band, cell) falls under the density (times the game's trample, r3d_on_ground_trample, where the row asks); scale, yaw, seed and wind from the same hash. Nothing calls it yet: behaviour unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
f79390838a
commit
c672be101e
5 changed files with 282 additions and 0 deletions
|
|
@ -52,6 +52,9 @@ import "actor.ludic"
|
|||
import "stream.ludic"
|
||||
import "place_rec.ludic"
|
||||
import "stream_baked.ludic"
|
||||
import "ground_density_write.ludic"
|
||||
import "ground_density.ludic"
|
||||
import "ground_fill.ludic"
|
||||
import "fog_streams.ludic"
|
||||
import "grass.ludic"
|
||||
import "grass_gpu.ludic"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue