Skip to content

Gold's renderer draws Un-POD's race ​

2026-10-24, late.

Un-POD on Beltane's grid, drawn by pod-render (Gold's software renderer)

Beltane's grid in Un-POD, drawn by pod-render. Every pixel comes from Gold's filler and span routines.

The same moment drawn by Un-POD's stand-in renderer

The same moment drawn by the stand-in renderer, which uses a depth buffer.

The end-to-end test needs Un-POD to run with each renderer. apps/unpod now has a second one, behind the same seam as the stand-in: UNPOD_RENDERER=gold. It takes the scene's triangles, clips them to a 640 × 480 screen and hands them to pod-render. From there it is all Gold's code, ported and measured: the polygon filler, the textured spans with their FPU rounding, the shade table, the coverage mask.

How Gold orders its drawing ​

The first try drew the polygons nearest first, each straight after it was filled, and the cars vanished under the road. The coverage mask only drops a span that is wholly hidden: a span half behind the car is drawn whole, over it. A recorded frame of Gold settled it. All 84 polygons are filled first, nearest first, and the 59 span lists are then drawn in reverse, farthest first. The mask culls what is hidden; painting far to near does the rest.

The shade bands ​

The shade table is not one palette. Gold builds it in bands of 64 rows: the track's palette in rows 0 to 63, the cars' (CHROME.CH3's) in 64 to 127, each a ramp from dark to bright. Rows 0 to 127 built that way are the same as the recorded frame's table. A face's light picks both its palette and its brightness.

Still the stand-in's ​

The camera, the projection, the depth scale, the light and the sort still come from Un-POD's own code, marked as deviations. There is no sky yet: whatever nothing covers is black. Those are next: Gold's transform and sort, then the sky.

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