Multiplatform software 3D engine

 
Details
     
 
Author
Jean-René Bédard
Language
C++ (core engine in C)
Platform
Windows 9x, NT, Pocket PC 2002, uC/OS-II
API
Year
2004
   
Source
source
PPC Binary binary
Win32 Binary
binary
 
 

Back to home


Abstract
     
 

This is a complete 3D engine entirely done in software. It is a multiplatform, only the rasterization layer changes from platform to platform. It works on PocketPC 2002, Windows NT and on a CerfPDA using Uc/OS-II as the operating system. On windows, to run the demo, your desktop's screen depth must be set to 16 bits.

 
 


Description
 


My software 3D engine was used in one of my engineering projects. I have made a CG video of the concept:

The video can be downloaded here (80 MB)


 

 
 
Multiplatform
The engine is multiplatform an works on PocketPC 2002, Windows PC and on a CerfPDA using Uc/OS-II as the operating system.


On pocket PC, I use GapiDraw for the fast rasterizing. On Windows, I use DirectDraw and on CerfPDA, I use simply the LCD driver to plot pixels using bresenham line drawing algorithm.

 

3D library
 


Core 3D library made in C, about 20 000 lines of code.

The Math library for embedded systems uses fixed point 16.16 operations optimized in ARM assembly.

The 3D library contains vector/matrix operations, 3D transformations functions, camera utilities and a .ASC file format loader/parser.



3D library implementation
 


The implementation of the software 3D library is made in C++ and wraps the 3D library. The platform abstraction is made in this layer.