Or more precisely – “Anatomy of a modern realtime photorealistic 3D DX11 renderer, in layman’s terms”.
Modern 3D graphics and rendering techniques tend to be viewed as really complicated, specialist and difficult by those not involved in it. There is an aura of “magic” around how computers can produce the images shown on the screen, and practically zero understanding of how this works. I’m not even referring to just the general public (although it is certainly “magic” in this case) – even among programmers in other areas, and even a lot of games artists, there is a perception that the renderer is too complicated to understand.
So, in this series I aim to change that. I will try to explain a bit about all of the processes going on behind the scenes, and show in rough terms how they work, in non-technical language. If you’re reading this series and it’s too hard to understand, let me know and I’ll see if I can improve it!
The first part of the series will give a general overview of basic 3D graphics, of how to get anything drawing so it looks 3D on the screen. This requires some knowledge of perspective and camera transforms but I’ll keep it simple! That will take you up to the state of the art of realtime computer graphics circa 1984, which a few of you may remember:
The next jump up was full polygon-based rendering, enabled by these new-fangled graphics card things. This approach is still what almost all game engines are based on, so the second part will give an overview of basic polygon rendering. This is the state of the art in 1996:
After that we have all the really interesting stuff! There are loads of cool and interesting techniques involved in taking us from Quake in 1996 to Battlefield 3, which is a pretty good representation of the state of the art in 2011:
These cool techniques include things like high dynamic range, Bokeh depth of field, physically-based lighting models, antialiasing, tone mapping, bloom, and a whole host of other things, all designed to simulate a real camera in the real world, thus giving us a believable image. This will be the bulk of the series as it’s where all the interesting things are happening these days.
So that’s my intent. This may be a fairly long-term project but I want to show that modern computer graphics doesn’t have to be hard or obscure, and really anyone can understand it! Until next time…