Uncharted 4: A Thief’s End is one of the best looking games of this generation. There is absolutely no doubt about that. However it’s always interesting to learn how Naughty Dog developed such an amazing looking game that almost looks like a movie. Fortunately, at SIGGRAPH 2016, various Naughty Dog developers gave a number of presentations which gave us a brief insight into how things came together to create a breathtaking experience.
One of the game’s standout visual aspects was its hair rendering and material shading technology, however Naughty Dog have been pretty silent about how they approached these two complex parameters in the game’s visual design. Yibing Jiang who is a Senior Shading Artist at Naughty Dog revealed new details behind how they approached this fantastic but overly complex graphical behavior. Jiang revealed that they started working on the shading pipeline back in 2012 when they knew the PlayStation 4 was on its way. They were excited to work on a next-gen console that will help them to ship a game that would look like a movie.
Very early on in development, they realized that everything needs to be physically based. This included the character’s hair, the clothes they wear and character materials. However this was easier said than done as the team had to assess each individual material (such as different types of clothes, their individual materials etc). They could have easily scanned fabrics however this resulted into an increase in texture memory but they instead opted for tileable details and a fabric reflectance model. Tackling the hair rendering was an even more difficult affair as Naughty Dog had to consider a number of parameters from back lit to self shadows along with volumetric shadows for each strand.
In another talk given by Ke Xu who is a game programmer at Naughty Dog spoke about the advantages of temporal AA which we have written a lot about in our Uncharted 4 and DOOM analysis. The presentation focused on how the developers used TAA under different environmental conditions and materials. However it must be noted that TAA introduces ghosting effects (something which we saw a ton of in Quantum Break). Naughty Dog tried to fix it and although the results are pretty good, some sort of shimmering is still observed when the camera pans really fast. The developer also highlighted that shader utilizatsion was only 0.8 ms of clock cycle on the GPU.
One of the highlights of Uncharted 4 was its lighting system. Given that the game took place across a variety of locations across varying times in day/night, Naughty Dog had to implement a solution that will read several screen space properties across particles, decals and indirect maps. Graphics engineer Ramy El Garawany explained Uncharted 4’s cube-map specular occlusion technique, which is based on the solid angle of intersecting cones. Garawany also explained how they plan to improve it in the future, possible for upcoming games (The Last of Us 2, anyone?)
And finally in a presentation titled, Rendering Rapids, graphics programmer Carlos Gonzalez-Ochoa revealed that Naughty Dog have a separate engine just to render the water effects we saw in the oceans and seas in Uncharted 4. The presentations explained how the effects are rather inexpensive to compute and how the new system treats water motion according to geometry.