Rendering techniques using DirectX 11
During this project I have learned bunch of interesting concepts, such as camera movement via construction of view matrix from Euler angles, phong shading model, soft shadows, dynamic reflections via cubemap, fog post process effect, how to parse Wavefront *.obj file to load 3D models, how to manipulate vectors with matrices and much more.
Project Details
I always wanted to try C language. And that what I have chosen to work with on this project. I have liked the simplicity of C. But it turned out that working with DirectX 11 API using C is not very pleasant. Because of that I have switched lately to C++. Nevertheless I have switched to C++ only after I have implemented a Phong shading.
Most of what I have implemented with C I have left as is: user input processing, camera movement, Wavefront *.obj parser, math library. C implentation is hosted on master branch.
After that I have decided to port my renderer to C++. C++ implementation is hosted on sponza-nofog-nobloom branch.
After porting renderer to C++ I have focused on finalizing my Phong shading implementation. I have added normal mapping which significantly boosted visual fidelity.
After that I have implemented shadow mapping, environment mapping, dynamic reflections via cubemap, particle system with particles generated on CPU, fog and bloom post processing effects. All of that you can see below.