steam – 3d engine, Delphi (2001-2002)
• steam.zip 25KB
After playing with hardware rendering for a while I decided to go back and restart from scratch. The reason why I did this was because I really wanted to make a fast and full-featured software rendering engine, so this was my first attempt. I then decided to keep an implementation close to OpenGL and Direct3D on the low-level side of the engine. This option would allow me to expand easily in the future.
I didn’t achieve all my goals with this engine, but it was a good experience, it always is. This project would eventually evolve to a more advanced state when I decided to port the code to C++ and change the name from “steam” to the old “motion”. I changed the name because meanwhile Valve took the liberty to make Steam a trademark.
Features:
• Support for 16bit (5:6:5) and 32bit (8:8:8:8) targets.
• Multiple viewports.
• Multiple render targets.
• Backface culling.
• Accurate wireframe, flat & gouraud shading triangle rasterizers.
• Sub-pixel and sub-texel accuracy.
• Z-buffer / W-buffer.
• Transformation and Lighting with a partial phong illumination model.
• Multiple cameras.
• Frustum culling with 3d polygon clipping.
• Depth polygon sorting.
• Loading of MS3D (Milkshape) models.
• Math libraries.