A software rasterizer
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Data
lib
.gitattributes
.gitignore
Camera.cpp
Camera.h
Core.cpp
Core.h
FreeImage.dll
Frustum.cpp
Frustum.h
Material.cpp
Material.h
MaterialManager.cpp
MaterialManager.h
Mesh.cpp
Mesh.h
MeshManager.cpp
MeshManager.h
Plane.cpp
Plane.h
Polygon.cpp
Polygon.h
README.md
RenderTarget.cpp
RenderTarget.h
SDL.dll
Scene.cpp
Scene.h
SceneGraph.cpp
SceneGraph.h
SceneManager.cpp
SceneManager.h
Span.cpp
Span.h
Template.exe
Template.exp
Template.lib
TextureManager.cpp
TextureManager.h
Vertex.cpp
Vertex.h
clean.bat
game.cpp
game.h
surface.cpp
surface.h
template.cpp
template.h
tmpl83.00b.sln
tmpl83.00b.vcproj
tmpl83.00b.vcxproj
tmpl83.00b.vcxproj.filters

README.md

The aim of this project was to create a software rasterizer and to learn about what the rasterization process is and how it is handled internally on the GPU.

Next to handling the rasterization process, the project also aimed in learning how to maintain a solid and proper architecture for clear data ownership. The architecture requirement wasn't only used for rasterization where mesh and material data should have clear ownerships for proper rasterization, but also for the creation of a basic scenegraph where a child and parent node hierarchy was mandatory.