idTech 666: The Secret of DOOM’s Render
Subscribe:  iCal  |  Google Calendar
20, Jan — 16, Mar
Leipzig DE   15, Feb — 18, Feb
21, Feb — 23, Feb
Barcelona ES   25, Feb — 1, Mar
Dubai AE   5, Mar — 7, Mar
Latest comments

Very impressive article Jake! You are very talented.

by Weston Mitchell⛏️🐭
5 hours ago

nice article! i love seeing the breakdowns.

12 hours ago


idTech 666: The Secret of DOOM's Render
5 August, 2016

SIGGRAPH 2016 had a lot of very interesting technical talks from some of the best programmers and artists working in game development. One of the highlighted talks of last week was the description of the technology used to render DOOM. The game features amazing 3d visuals and mind-blowing 60 FPS. To achieve this the team of developers, including Tiago Sousa & Jean Geffroy had to invent a lot of clever technical things.


The talk itself is not yet featured on the SIGGRAPH website, but you can download the slides from the presentation and read the text of the whole talk (which is even better).

At a high level a frame in DOOM looks something as this. We do a Hybrid approach, by using opaque passes and deferred for a nice quality / performance ratio. Using Forward also has some auto-magic benefits for quality ( which we will talk soon ) and things like MSAA. As you might have guessed, being Forward forces us to prepare all lighting and shading data ahead of time as much as possible. That means things like the data structure used to index into things like Light sources, are prepared ahead of time. Shadows are other obvious case. We do quite some work keeping costs down here, resorting to things like caching and smart composite to mitigate costs when update required.

For the deferred stage, we output the minimal data required for doing things like reflections, specular occlusion and so on. I mention approximated times has times are always variable. For example posts can grow when DOF is enabled or some game related Post Process – albeit posts run in Async on consoles and Vulkan.Or the usual Particles, where we can get cases with some heavy overdraw.

To achieve the incredible speed developers kept the amount of shaders to a minimum. There are about 100 unique shaders and the team believes it could actually be less if some tidy up.

Here’s just some slides to show how the team worked with lighting.


2016-08-05_12-55-54 2016-08-05_12-55-36 2016-08-05_12-55-20

2016-08-05_12-55-03 2016-08-05_12-53-40 2016-08-05_12-50-41

You can download the full version of the lecture here (addition). Don’t forget to go over those slides. There’s a lot of very interesting stuff there if you’re into rendering.

Leave a Reply

Be the First to Comment!