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.
Image Gallery
Phong shading implementation in C language.
Exponential fog.
Shadows with environment map.
Bloom with Gaussian blur.
Dynamic reflections via cube map.
CPU generated particles.