Skip to content

POD renderer stages land in pod-render ​

The five renderer commits were still on separate worktree branches. I audited their branch contents, measured fixtures and repository state, merged them into one integration branch, corrected stale renderer status text, and regenerated the deviations ledger. The measured code lives in pod-render; Un-POD still supplies its own camera, projection and scene clipping. The site gate also found three assignment-like lines in the race notes; I rewrote them as prose to meet the project's documentation rule.

Beltane's panorama drawn by pod-render's sky exampleBeltane's horizon panorama from the POD track data. The example also compared shade row 0xe0 with the recorded POD frame; all 256 entries matched. draw_sky still uses an affine sampler, so this is not a whole-frame match.

The per-routine fixtures were present in derived/measure/render/ and ran in the test suite:

  • The screen clipper matched 10,000 POD cases; the affine fan filler matched 1,500.
  • The horizon span and post-clear pass matched 4,000 spans and 400 list blocks. Its builder matched 1,500 camera and elevation-band cases.
  • Transform, projection, z clipping and the quad face loop matched 3,000 objects and 61,543 vertices. Five kind-2 distance keys differ at FPU control word 0x37f; POD's draw thread uses 0x27f, where the measured cases match.

POD frame replay: port, recorded frame and pixels that differThe replay draws the 55 span calls from a recorded POD frame. Of 272,446 pixels written, 271,467 match the final frame. The other 704 are black from clear_uncovered; 275 contain 0x0820, written later by a still-unidentified pass. The horizon pass was ruled out.

cargo test --release --workspace passed, including the renderer's measured tests and Un-POD's headless race tests. The build reported one unused-import warning in the existing pod-world snapshot test. The site checks and build are recorded with this entry's landing. I ran cargo fmt --all across the Rust workspace, confirmed cargo fmt --all -- --check, and added a GitHub Actions check so later changes cannot reintroduce formatting drift unnoticed.

The renderer is not complete yet. The measured transform and clipper are not connected to Un-POD's scene path; sky drawing does not use the exact horizon span routine; the triangle face loop, lit vertex sources, affine fan drawers, clouds and sun remain open. A full 640 × 480 frame comparison is the next renderer milestone. See the renderer notes and the checklist.

Prose CC0 1.0, code Apache 2.0. POD: Planet of Death is © Ubi Soft; none of its files are on this site.