An OpenGL-like triangle rasterizer designed to run on the CPU only, with support for Vertex & Fragment Shaders.
Features:
-It has the same nomenclature as OpenGL.
-It has Vertex and Fragment shaders.
-Ultra parallelized.
-Memory-efficient.
-Renders to a Bitmap, which can be modified to support quick bitmap switching (thus creating a framebuffer system and allowing off-screen rendering).
-Uniforms, Attributes & Varyings.
-Simple.
I developed this project with the aim of studying and learning more about rasterizers and shaders.
Also I would like to study more about parallelization techniques in C# and I found this a great project to test it.
Performance:
My CPU: Intel Core I5-8250U 1.6ghz
Running a screen of 300x300:
Mid frames rate: 25 frames per second.
Pixels per second: something around 2.5 million.
I found the performance very pleasant to be my first project of these.
The operation is very similar to OpenGL.
You must create shaders (VertexShader and FragmentShaders).
Then create a ShaderProgram and attach the shaders.
Your shader can contain Uniforms, Attributes and Varyings (Just like OpenGL).
I made an example inside the project for you to analyze.
It is in the Examples/Cube/ folder.
