Welcome to the Documentation of CPU Rasterizer

Statement

Hi, my name is Daniel Ďurica and I am the author of the CPU Rasterizer in C#. This Project serves only as an example of how graphics cards might work. It definitely doesn't have any practical usage, since you can get modern openGL running in few minutes, and It runs much better. However, running opengl abstracts lot of cool stuff, that I wanted to figure out how they are done. Also to produce a 3D image entirely from scratch is cool thing to do :). Anyway, let me stop yapping and let me introduce you to the project

How It Works

The Project is split into 4 Different distinct parts.

As you can see the first part is the most important one, it is the part that is responsible for setting up window, holding vertex information and drawing.

In demo program I've tried to make a mini engine that works with the renderer. I wanted to create a game on it, but I run out of the time. It has some basic functionalities like gameobject hierarchy and component system.

The Logger is just assynchronous logger class, that is configurable.

File Loader extension is pretty much what it sounds like. It can load 3D objects from obj files, and return prepared VAOs. It can also load textures and prepare them for the renderer.