render3d: the GPU blades grow by a painted density (a layer of the ground densities, grass_density_layer) where a map has one - a 5x5-tile window round the camera in a storage buffer the cull samples - and by today's rules where not; grass_rule_at is the rules on the CPU for the migration
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
e6f4685bd0
commit
9186abbbe3
10 changed files with 219 additions and 21 deletions
9
changes/render3d-blade-density.md
Normal file
9
changes/render3d-blade-density.md
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
bump: minor
|
||||
type: feature
|
||||
**`ludic.render3d`: the GPU blades grow where a painted density says.** `grass_density_layer(l)` names a layer of
|
||||
the ground densities (`ground_density_open`: the same 2 m texel, 64 m tiles, bake and dev fallback) as the
|
||||
blades'; `grass_cull.comp` then keeps a blade by that density, bilinear, where it used to apply its rules (the
|
||||
slope, the water's margin, the snow line, the photograph). Without one, nothing changes. The cull reads a
|
||||
window of 5 x 5 density tiles round the camera (160^2 bytes, a host-visible storage buffer, re-filled from
|
||||
the CPU tile cache when the camera crosses a 64 m tile), never the whole map. `grass_rule_at(x, z)` is the
|
||||
rules on the CPU, for a migration that paints them; `grass_density_texels()` the side a density PNG has.
|
||||
Loading…
Add table
Add a link
Reference in a new issue