In this course we cover 3D rendering techniques and the math that is needed to efficiently calculate the pixels for the screen.
We start with raytracing, which is a technique that has been used for a long time, but only recently has become viable as a real time rendering technique. With raytracing, every pixel of the screen will be calculated by shooting a ray into the world, and calculating the closest hit with the world objects. The sphere and plane primitive are important to get started, but we move on to triangle meshes to be able to render more interesting objects. To make the rendering realistic we also cover the topic of PBR (Physically Based Rendering) which creates a nice visual of the 3D primitives but also aims to be a good approximation of real life lighting effects.
The next big topic is rasterization, which is still a mainstay in current game development. You will write a simple (software) rasterizer that is able to render 3D triangles onto the screen. The software rasterizer will have to conform as closely as possible to the DirectX11 API. Like with the rasterizer project, the lighting effects uses PBR techniques.
Finally, there is a smaller project that uses the DirectX 11 API and uses the calculation power of the graphics card to make a rendering. The final project is a combination of the software rasterizer project and the DirectX 11 API where it should be possible to switch between the two renderers without graphical differences.
Technology used: Microsoft Visual Studio