A simple render engine in .NET
I did this project like 5 years ago in order to get a better idea of how real time 3d renders work.
First try…
Mmm… Well… This is not a render engine but everyting a begining, right?
(Just playing around with 3d projections)
RT render engine
Initially, I coded absolutely everything (even the matrix operations) and of course, I did not any kind of hardware accelaration. Not even a highly optimized mathematical library, openGL, directX,…. I wanted to understand all low level details.
As expected, the rendering was quite slow, even for simple objects. But who cares, it worked! 😄
File format
I chose .obj due to its simplicity and popularity.
Renders
Shadings
- Wireframe (technically not a shader)
- Flat: Angle between the normal of a polygon’s surface and the light.
- Gouraud: Interpolates the light intensities
- Phong: Interpolation between the vertices
Textures and maps
Here I play around with many different maps (opacity, normals, bump,…) and texture tricks.
Handling million of polygons
Future work
- More maps (e.g.: Parallax, poly-displacement)
- (RT) Reflections
- (RT) Global illumination
- Postprocessing
- (RT) Fluid simulation and tricks (e.g.: Perlin noise)
- User interations in the 3d view
- 3D sound
- Procedural generation