The pictures of ThunderZ’s 3D engine for GP32 has been shown on many various related pages yet. Now there is more information on it (downloads soon). Thanks toGP32newsfor the news and ThunderZ himself for telling me about this.
The license of the engine, I’m working is no more commercial license.So i’ve decide to distribut the GP32 version and the tools freely to make everyone can use it (license not yet choose).Here some specification of the engine :* The current GP32 viewport is 320×240 pixels, 16bit.* Engine supports radiosity lighting and shadows.* All textures are 64×64 8bit.* Rotated vertices are cached and reused by neighbouring cells.* A vertex pool is used to insert new vertices into clipped polygons reducing memory shifting.* Textures are converted to 15bit via a precalculated lighting LUT.* Polygons can be any convex shape. Only squares are currently used.* Each vertex is described as X, Y, Z, U, V and brightness.* The renderer uses 24:8 fixed point maths.* Polygons are clipped in 3D space using 45 degree planes. Distance to plane calculations therefore use only additions and subtractions.* Polygon edges are clipped using one divide and 6 multiplies.* 4 clipping planes are used. No front plane is required. No back plane is used.* No per-span clipping is used. Fixed point errors are hidden offscreen.* Ray-casting is used to build a visablity list and valid polygon rendering order.* Models are merged into the VIS without sorting.* No Z-buffers are used. Rendering is back-to-front (painters algorithm).* The is an acceptable level of overdraw. Complete polygons are culled. Polygon edges are drawn faster than using a per span clipper.* Lighting is pre-calculated on startup. Lighting can be moved at runtime.* Lighting is expanded per vertex and interpolated along polygon edges.* A reciprocal table is used to eliminate all divides from the DDA texture mapper.* The affine texture loop is unrolled and renders blocks of 32 pixels.