Tuesday 16 January 2018

Inside "Alien: Isolation" - Graphics


"Alien" franchise is by far one of my favorite sci-fi movie series ever! That's why I was so thrilled when a video game "Alien: Isolation" came out in 2014. Guys from Creative Assembly have done an awesome job because the game looks and plays not only well but also recreates the vibes of 1979's cult classic "Alien".

Some time ago I found Adrian Courrèges's blog on the Internet with his "graphics studies" of different games and I wanted to do something similar since then. At the time of discovering new stuff in computer graphics, I decided to open up a popular profiling tool RenderDoc and perform some analysis of "Alien: Isolation" graphics. But I should mention that it was my first experience with profiling such a big game, so don't expect anything deep and meticulous! All I wanted to do is to dissect some frames and see how things were rendered. I will also mention some techniques that Creative Assembly used in the game, and that were then shown in the article by AMD.


First of all, the game uses Deferred Rendering which allows putting numerous light sources into the scene. I have touched that topic a quiet ago, so you should have a basic understanding of the process. One cool thing that the developers of the game came up with is working with multiple materials. We all know that if we want to use different BRDFs it can be problematic to do with Deferred Rendering. But "Alien: Isolation" has a nice solution: stencil buffers mark objects with unique materials and then lighting uses multipass while doing some culling for these objects. So basically if some materials are out of the player's FOV, they are just not used in the pipeline.


Let's see how the lighting is rendered in the same scene step by step. If you played the game, you know it's full of projectors, flashers and other sources of light, despite the fact that it is set in dark environments most of the time. Everything looked amazing because of indirect lighting, radiosity lightmaps and emissive surfaces (displays, buttons, LEDs and etc). Sorry, I'm too lazy to implement a decent slider script, that's why look at the GIF I made and try to remember the details :)


Shortly the process is following: emissive surfaces -> data from the lightmap -> more data plus the sunlight (or maybe not the sun, as we're in the deep space!) -> volumetric fog -> and after some post-processing - a final image.

Simply gorgeous! I really like it! And I hope you as well:) After the scene has rendered everything in it, passes for UI are coming. I haven't noticed anything special in them: just some textures with HUD and stuff like that. So that's it for this scene. But! Let's move to another one... Of course, I'm not going to repeat everything again, because I'm only interested in one classic and geeky thing from the franchise - a motion tracker!


Obiously, nothing but only overlayed lines and elements that are mapped to 256x256 textures with emissive light, lol. But mind that it's interactive, with motion detection. In that case, it is a little bit more interesting in terms of game mechanics (not graphics though) as it adds a moving dot on the display that tells you where the danger is. At that moment, there was simply no alien around...


The game also has a DLC "Crew Expendable"  that features the characters from the original film, including Ellen Ripley. Let's take a quick look how her model was rendered on the screen. I should state that a proper skin rendering was definitely used, because, for example, a subsurface-scattering pass is there.


I already told you that the lighting in the game is incredible. Besides, VFX are also stunning! Sparks, fire and smoke particles are physically-simulated on GPU using DirectCompute. Thousands of them can be rendered simultaneously with different properties. For example, in the scene below there are 1092 vertices in the pass to render these fire particles (of course, flames themselves are just textures).


I suppose that is everything I wanted to show except the shadows. I haven't talked about Contact Hardening Shadows that were used in the game, but you can find an original paper if you are interested. You can also read about the texture compression that was mentioned in "High-Tech Fear - Alien: Isolation" article by AMD. Oh, and check out the game, of course, if you haven't played it yet:)

Links:
1. https://community.amd.com/community/gaming/blog/2015/05/12/high-tech-fear--alien-isolation