pub fn render_dda_parallel(
camera: &Camera,
settings: &OpticastSettings,
grid: GridView<'_>,
fb: &mut [u32],
zb: &mut [f32],
pitch_pixels: usize,
env: &DdaEnv<'_>,
cache: &BrickCache,
mip: u32,
)Expand description
Tile-parallel render_dda writing straight into (fb, zb).
DDA pixels are independent, so the framebuffer splits into disjoint
horizontal bands rendered concurrently (rayon) — bit-identical
to the sequential render regardless of thread count, unlike voxlap’s
per-strip discretisation. Each band spins up its own lightweight
[Sampler] over the shared, immutable cache.
cache must already hold current brick maps for every chunk at
mip (populate via BrickCache::ensure); mip is the effective
render mip (effective_mip). (fb, zb) use the standard
conventions (0x80RRGGBB; z = perp distance, smaller = closer); a
miss writes nothing unless DdaEnv::sky is set. pitch_pixels is
the row stride.