ludic/packages/ludic.render3d/r3d.ludic
Orkuncakilkaya c672be101e 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>
2026-09-29 20:33:51 +03:00

65 lines
1.9 KiB
Text

# ============================================================================
# ludic.render3d — a physically based 3D renderer on Gl.* (OpenGL 4.1 core).
# Import this one file, and register what a frame draws: r3d_on_draw, r3d_on_casters and, for a
# streamed layer, r3d_on_stream_fill (hooks.ludic).
# ============================================================================
numbers float # the renderer's numbers are floats whoever imports it
import "env.ludic"
import "hooks.ludic"
import "fmath.ludic"
import "gpu.ludic"
import "gpu_manifest.ludic"
import "gpu_vk.ludic"
import "vkmem_report.ludic"
import "gpu_vk_res.ludic"
import "gpu_vk_layers.ludic"
import "gpu_vk_bc.ludic"
import "gpu_vk_readback.ludic"
import "texture_dds.ludic"
import "prof.ludic"
import "drawstats.ludic"
import "programs.ludic"
import "texture.ludic"
import "baked_tex.ludic"
import "mesh.ludic"
import "gpu_vk_draw.ludic"
import "camera.ludic"
import "sky.ludic"
import "daylight.ludic"
import "terrain.ludic"
import "terrain_chunks.ludic"
import "terrain_tiles.ludic"
import "terrain_tiles_cut.ludic"
import "terrain_ltt2_write.ludic"
import "terrain_ltt2_read.ludic"
import "terrain_baked_boot.ludic"
import "terrain_pages.ludic"
import "terrain_pages_frame.ludic"
import "terrain_pages_fill.ludic"
import "overlay.ludic"
import "shadow.ludic"
import "post.ludic"
import "quat.ludic"
import "gltf.ludic"
import "gltf_release.ludic"
import "gltf_cached.ludic"
import "skin.ludic"
import "scatter.ludic"
import "fog_casters.ludic"
import "layer_chunks.ludic"
import "fog_impostors.ludic"
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"
import "water.ludic"
import "streamline.ludic"
import "render.ludic"
import "bake_parts.ludic"
import "safe_api.ludic"