64K RAM SYSTEM 38911 BYTES OF STUFF I MADE
3D Raster Engine
This project is an example of a Software 3D rasterization engine.
It was written as coursework for uni and involves loading in a model file and dealing with all the math to draw it onto the screen. This does not use a framework or API so it’s entirely handled by the software.
The project is written in C++ and covers
- Vertices
- Vectors
- Matrix Operations
- Back face Culling
- Z Buffering (Painter's algorithm)
- Camera
- Wireframe
- Gouraude Shading
- Lighting (Ambient, Directional, Point, Spot)
- Specular Lighting
- UV Texture Mapping
It follows the graphics pipeline applying the model transformations, perspective transformation and the view transformation.
The parts of this project I believe deviate from the other submissions is that I used inheritance for the lighting, having a standard light class that handled applying the color changes to the pixel but having the actual math calculated.
I also allowed for different lighting settings to be created and stored in a vector array for loading later, as well as another vector array to hold models allowing for multiple models to be displayed.
Below if a video of the full showcase submitted, I scored a 100/100 for this project.
If you've come here from my CV and want to see the source code email me and I would be happy to send it.
Tech Used
Info
Date Written:
12/2021