Uncharted 4: A Thief's End [PS4]

Status
Not open for further replies.
I respectfully disagree. ;)

The indirect lighting is something that's been around for awhile by the use of light maps for static scenes. As of last year, we've been seeing the implementation of light probes where the dynamic characters would pick up the light contribution from those to light the shadowed areas.
As games have introduced better quality baked lighting, response has always been proportionally impressed from the general gamin populace. Why are people impressed with TTC? Because it's taken indirect lighting to the next level. That's it, save maybe some good material tech to go with that. But the difference between photorealism and less than photorealism is the lighting, and it's also the costliest part of the rendering pipeline to get right.

My personal take is that we are seeing not enough detail in the texture
You don't need textures to make something look realistic or pretty.
http://www.jozvex.com/images/sssCoefCompare.jpg
http://fc02.deviantart.net/fs71/f/2010/192/2/e/Porcelain_Dragon_by_Lighti85.jpg

...and the lack of SSAO for self-shadowing of the character.
That's part of it, but SSAO is one technique to try and approximate secondary illumination in realtime. SSAO won't solve the like of reflected light from surfaces being climbed, for example, or from Nate's lower leg bouncing up to light under his thigh. There are obvious points where it's the lack of light that's the issue, just as there are points where it's the lack of shadowing that's the issue.

P.S. Shifty, did you get my message to change my username?
Nope. There's a thread for that - https://forum.beyond3d.com/threads/list-of-forum-user-name-changes.34498/page-10
 
Let's set some terms right first.

Ambient lighting in CG of all kinds is a constant and directionless source of light that's applied to everything. It is dull and it decreases contrast and flattens the image and all, and it's of course very wrong. Most people aren't using it anymore, as it's a legacy from the early days when even a single additional light source was very expensive. Think eighties CGI.

About 14 years ago ILM introduced the concept of ambient occlusion with image based lighting. The ambient term wasn't just a constant value, it was sampled from a spherical environment map which was usually created from shooting pictures of a chrome ball and unwrapping them into a texture map (as the tech was developed to make movie VFX more realistic and the lighting workflow more simple).
But this has the unwanted effect of illuminating the entire surface of all objects, which isn't realistic. ILM's solution was ambient occlusion, basically precomputing the visibility of the environment for every point on the surface. It's possible to calculate AO as a texture map, or as a pass of an image which then gets used in 2D compositing (similar to how a g-buffer works).
AO however is not a physically correct approach at all, it's a fast and cheap hack. ILM used raytracing but it's also possible to render it with other methods; and it was developed mainly because full raytraced lighting was way too expensive at the time.
Also, AO doesn't calculate lighting, so it can't produce effects like bounce lighting or color bleeding in the bounced light.

Game renderers have different implementations and they also had an intermediate step. I think it was Half-Life 2 where Valve first introduced ambient cube maps for the characters' lighting - this was more advanced then a simple constant ambient term. Not sure why they haven't used a spherical environment map approach though, perhaps it has to do with the math and the GPU features of the time.
Screen space AO techniques are, as I've been mentioning for a while now, an approximation of the VFX tech, less accurate but more efficient. So basically a hack of a hack ;) I don't think the current console generation is powerful enough for developers to phase it out completely and replace it with a 'proper' bounce lighting system, but we're probably going to see a few additions and such in the coming years.


Area lights are a relatively new thing in CG, as the name suggests the light source is no longer handled as a single point or a general direction. This is also of course much more expensive, and usually requires raytracing; KZ4 is once again using an approximation instead.
Area shadows are however a completely different thing, even though it's possible and common to pair them with area lights and use similar calculations (it's best with raytracing, of course). But they're a lot cheaper and can be implemented for example by simply calculating multiple shadow maps for a light source and then combining them.

As for UC4 and it's issues, there seem to be some camera angle related shader stuff on the characters (and probably any dynamic object) that does not handle shadowing or occlusion or whatever in the object. This was very common in PS360 games but I have seen it less frequently in PS4X1 titles. SSAO should help with the issue theoretically, so maybe it's something ND plans to deal with later on. Or maybe this is one of the trade-offs they're making to get to 60fps.
 
That's part of it, but SSAO is one technique to try and approximate secondary illumination in realtime. SSAO won't solve the like of reflected light from surfaces being climbed, for example, or from Nate's lower leg bouncing up to light under his thigh. There are obvious points where it's the lack of light that's the issue, just as there are points where it's the lack of shadowing that's the issue.

You're on the point with your last sentence - SSAO isn't about lighting at all, it's about shadowing or occluding the light.
 
Yeah, I've been meaning it as their actual use in large scale CGI productions. Feature wise a lot of CG tech was developed far ahead of their adaptation; but it's also worth mentioning that production use will always start up additional research to make the tech more efficient and user friendly. I'm sure area light tech today is way more advanced and efficient than its first implementations.
 
As for UC4 and it's issues, there seem to be some camera angle related shader stuff on the characters (and probably any dynamic object) that does not handle shadowing or occlusion or whatever in the object. This was very common in PS360 games but I have seen it less frequently in PS4X1 titles. SSAO should help with the issue theoretically, so maybe it's something ND plans to deal with later on. Or maybe this is one of the trade-offs they're making to get to 60fps.

You are giving me hope. I can totally accept those trade-offs if it means a targeted 60fps.
 
As games have introduced better quality baked lighting, response has always been proportionally impressed from the general gamin populace. Why are people impressed with TTC? Because it's taken indirect lighting to the next level. That's it, save maybe some good material tech to go with that. But the difference between photorealism and less than photorealism is the lighting, and it's also the costliest part of the rendering pipeline to get right.

Yes, it has. However, that's not going to make it look better than every game in existence. Ryse, AC:Unity and some others don't use Voxel-based GI and they still look better than TTC, IMO.

http://fc02.deviantart.net/fs71/f/2010/192/2/e/Porcelain_Dragon_by_Lighti85.jpg

Right. I was talking about making UC4 look even better than it does -- not the general case.

That's part of it, but SSAO is one technique to try and approximate secondary illumination in realtime.

Yes, but it's mainly used for occlusion and not the indirect illumination. I think that Nate needs more occlusion than indirect.
 
Also, AO doesn't calculate lighting, so it can't produce effects like bounce lighting or color bleeding in the bounced light.

I agree with everything you said except this sentence.

Ambient Occlusion actually is a by-product of Indirect Illumination. When you fire rays from a surface A to get illumination values from other surface B. Imagine that the part of surface B you hit isn't being lit and therefore is black (out of illumination).. but then other parts you hit are in light and so you get the illumination values. When you average everything up, if you have more black values than non-black values, your overall secondary illumination is black -- hence occluded. Otherwise you'll get the indirect illumination from surface B as you wanted.
 
Yes, it has. However, that's not going to make it look better than every game in existence. Ryse, AC:Unity and some others don't use Voxel-based GI and they still look better than TTC, IMO.
That's entirely subjective. For anything going for realism, GI of some form is necessary.

I agree with everything you said except this sentence.

Ambient Occlusion actually is a by-product of Indirect Illumination...
When calculated to apply to a surface, rather than talking about the effect of occluded light on shading, it's subtractive. In a game, the surface is lit by the illumination source and then its brightness diminished by an AO effect. This process cannot add secondary light. In RL, ambient occlusion occurs as part of the illumination from reflected light, as you say, but Laa-Yosh and myself are taking about the real-time effect.
 
There is no ambient occlusion in real life because there is no 'ambient light' (look at the definition in my previous post) in real life either.

We could of course go further here and state that there is no separation between diffuse and specular components or there is no RGB either, but there is IMHO a big difference between the realism of them; AO is a hack on top of a hack and practically everyone in VFX considers it to be a crime nowadays.
 
With the right rendering technology, it can. Realism in overcast lighting, even neo-realism as per Uncharted's art style, will still look obviously better and 'next-gen' compared to what we're used to. Wetness and neon lighting has a lot more pop, although now that's almost a trivial standard. TTC stands apart in having a sense of beauty without being flashy thanks to it's low-key lighting and fabulous rendering technique, and we have that quality in indirect lighting to look forwards to in realtime, whether this gen or the next.
No matter what the tech, a drab setting will look like a drab setting.
BTW, this is an actual TTC screenshot:
iNvUnY0qf5eU0.png

Not that hot-looking, TBH. The render you posted is only concept art.

---------------------------------------------------

Let's set some terms right first.

Ambient lighting in CG of all kinds is a constant and directionless source of light that's applied to everything. It is dull and it decreases contrast and flattens the image and all, and it's of course very wrong. Most people aren't using it anymore, as it's a legacy from the early days when even a single additional light source was very expensive. Think eighties CGI.
ibjp22WQgvxqc5.jpg


About 14 years ago ILM introduced the concept of ambient occlusion with image based lighting. The ambient term wasn't just a constant value, it was sampled from a spherical environment map which was usually created from shooting pictures of a chrome ball and unwrapping them into a texture map (as the tech was developed to make movie VFX more realistic and the lighting workflow more simple).

CryEngine can do this at the push of a button, BTW.
http://docs.cryengine.com/display/SDKDOC2/Environment+Probes

But this has the unwanted effect of illuminating the entire surface of all objects, which isn't realistic. ILM's solution was ambient occlusion, basically precomputing the visibility of the environment for every point on the surface. It's possible to calculate AO as a texture map, or as a pass of an image which then gets used in 2D compositing (similar to how a g-buffer works).
AO however is not a physically correct approach at all, it's a fast and cheap hack. ILM used raytracing but it's also possible to render it with other methods; and it was developed mainly because full raytraced lighting was way too expensive at the time.
Also, AO doesn't calculate lighting, so it can't produce effects like bounce lighting or color bleeding in the bounced light.
ipQKZZFhgor5A.png


Game renderers have different implementations and they also had an intermediate step. I think it was Half-Life 2 where Valve first introduced ambient cube maps for the characters' lighting - this was more advanced then a simple constant ambient term. Not sure why they haven't used a spherical environment map approach though, perhaps it has to do with the math and the GPU features of the time.
Page 58 onwards:
http://www2.ati.com/developer/gdc/D3DTutorial10_Half-Life2_Shading.pdf

Screen space AO techniques are, as I've been mentioning for a while now, an approximation of the VFX tech, less accurate but more efficient. So basically a hack of a hack ;) I don't think the current console generation is powerful enough for developers to phase it out completely and replace it with a 'proper' bounce lighting system, but we're probably going to see a few additions and such in the coming years.
iFD7A1VXICyKC.jpg


Area lights are a relatively new thing in CG, as the name suggests the light source is no longer handled as a single point or a general direction. This is also of course much more expensive, and usually requires raytracing; KZ4 is once again using an approximation instead.
i2WC2f2coP39u.png


Area shadows are however a completely different thing, even though it's possible and common to pair them with area lights and use similar calculations (it's best with raytracing, of course). But they're a lot cheaper and can be implemented for example by simply calculating multiple shadow maps for a light source and then combining them.
Area shadows faked by placing a hundred shadow casting lights close together xD:
http://i.minus.com/igzSeIj7CI4Bl.gif

--------------------------------

Ambient Occlusion is basically the end result of applying a perfect spherical light a to an object/scene and seeing which parts would get more/less light. Looks nice but it's not realistic.
 
Bad comparison. In the U4 demo the main light source is a hemisphere light, the sky. In the Tomorrow Children render, there's the hemisphere light (blue) AND a very strong directional light coming from the left (yellow) which is the one that gives depth to the image.



The motion blur used in U2 was pretty much non-existent during gameplay and absolutely non-existent in the pre-rendered cutscenes.
Well I know this was a few pages ago but it was a direct reply to me so I will bother.
The Uncharted 2 I played had the very best console implementation for its time and this was after Killzone 2 was released. It was not as in your face as KZ2 but it was not almost non existent during gameplay either as you put it. I donno how you could miss it when it's always on Drake everytime he moves and jumps in the game, and he does that a lot. As for camera blur all Uncharted game shave quite heavy camera blur, easily evident by rotating the camera.
 
No matter what the tech, a drab setting will look like a drab setting.
To some extent, although that's not what you said originally and to what I replied.

Well as I said, an overcast setting in a place filled with not-very-reflective materials isn't going to be an amazing lighting showcase.
You can be overcast and matte and still look good with the right lighting. Here's another TTC children image. Could be realtime or render but it doesn't matter as the point is the right lighting looks good and obviously better than last-gen techniques :

UNCHARTED 4-A THIEF’S END.jpg

I cropped out the shiny floor. Virtually zero textures, low key, low contrast. A dull image. Lighting looks rubbish and uninspiring?

BTW, this is an actual TTC screenshot. Not that hot-looking, TBH.
Now imagine it without the contact shadows and occlusion under the desk from the voxelised lighting. Sure, it's not poster material, but it's clearly a superior lighting model with more pleasing results with its fancy next-gen lighting model.

The render you posted is only concept art.
I know, you already mentioned that. As it was posted to showcase how area lighting with a hemisphere can a still look beautiful, it's origins don't subtract from the argument to which it was applied. If we had realtime raytracing with several recursions, we could have beautiful games all overcast and lacking shiny-shine. If UC4 was realtime raytraced with several recursions, it'd look stunning even overcast and without reflective surfaces. (It can of course achieve a different style of stunning by pursuing different targets, although it can't hope to attain 'realism' without realistic lighting and shading).
 
Shifty, I'm not sure what your point is; Yes, TTC is anything but drab looking. But the screens you are showing are all very simplified with little to no colour - which is precisely why these fine details are making a huge difference to the overal scene you are showing. How much of an effect this has on a colourful game with a very complex environment is obviously quite different. Not saying you aren't correct that a correct (complex) lighting model will provide better results - but I think the main factor here isn't the accuracy of the lighting model, but the overcast setting together with a complex colourful environment (and possibly bad colour and details lost through compressed footage) that is over exaggerating the drabness you are pin pointing as being down to the lighting model.
 
Shifty, I'm not sure what your point is.
A disproof that boring, overcast lighting, and/or hemispherical lighting (lighting via a hemispherical area light) == boring graphics. UC4's shortcomings aren't because it's a rather dull lighting arrangement, but because it's failing to capture the lighting realistically. It's not a fault of the textures or the overcast lighting (which still isn't that overcast because there are clear direct-light shadows!) that Nate's legs are wrongly illuminated when climbing and his front side is far too dark considering the amount of reflected light that should be coming off that rock-face.
 
A disproof that boring, overcast lighting, and/or hemispherical lighting (lighting via a hemispherical area light) == boring graphics. UC4's shortcomings aren't because it's a rather dull lighting arrangement, but because it's failing to capture the lighting realistically. It's not a fault of the textures or the overcast lighting (which still isn't that overcast because there are clear direct-light shadows!) that Nate's legs are wrongly illuminated when climbing and his front side is far too dark considering the amount of reflected light that should be coming off that rock-face.

Yea, I see what you are saying here and have to agree.
 
Well I know this was a few pages ago but it was a direct reply to me so I will bother.
The Uncharted 2 I played had the very best console implementation for its time and this was after Killzone 2 was released. It was not as in your face as KZ2 but it was not almost non existent during gameplay either as you put it. I donno how you could miss it when it's always on Drake everytime he moves and jumps in the game, and he does that a lot. As for camera blur all Uncharted game shave quite heavy camera blur, easily evident by rotating the camera.
Maybe we have different levels of sensitivity to it but it looked pretty tame to me.

---------------------------------

To some extent, although that's not what you said originally and to what I replied.

You can be overcast and matte and still look good with the right lighting. Here's another TTC children image. Could be realtime or render but it doesn't matter as the point is the right lighting looks good and obviously better than last-gen techniques :

View attachment 495

I cropped out the shiny floor. Virtually zero textures, low key, low contrast. A dull image. Lighting looks rubbish and uninspiring?
It does. But also white isn't a non-reflective material. Perhaps you're thinking purely of specular reflections. I meant to say materials with a low albedo, such as the dark rocks and plants in the demo. Such types of materials will not strongly bounce light off-them so you won't get pretty lighting out of them.

That shot is concept art as well, BTW.

Now imagine it without the contact shadows and occlusion under the desk from the voxelised lighting. Sure, it's not poster material, but it's clearly a superior lighting model with more pleasing results with its fancy next-gen lighting model.
I find U4's better, actually. You just need to know where to look at:

iwXRxvVzvnwVn.png



I know, you already mentioned that. As it was posted to showcase how area lighting with a hemisphere can a still look beautiful, it's origins don't subtract from the argument to which it was applied. If we had realtime raytracing with several recursions, we could have beautiful games all overcast and lacking shiny-shine. If UC4 was realtime raytraced with several recursions, it'd look stunning even overcast and without reflective surfaces. (It can of course achieve a different style of stunning by pursuing different targets, although it can't hope to attain 'realism' without realistic lighting and shading).
The lightmaps are obviously raytraced but the reason why the TTC render looks better is because:

-The environment is fully white.
-There's a strong directional light.
-There are some strongly saturated objects that bounce colored lighting on the white environment.

VS.

-Environment full of low albedo materials.
-Dim directional light.
-No strongly saturated objects bouncing light on white materials.
 
I meant to say materials with a low albedo, such as the dark rocks and plants in the demo.
Makes no real difference unless you have significant contrast from a direct sunlight or similar. When the materials are dark, the secondary illumination is dark, but the exposure will still balance it out.
http://www.davidhanauer.com/buckscounty/ringingrocks/photos/ringing_rocks_2006_04.jpg
http://mylittlenorway.com/wp-content/uploads/2008/08/arctic-circle-rocks.jpg
http://upload.wikimedia.org/wikipedia/commons/f/f6/Shag-Rocks-en-Route-to-South-Georgia.jpg - this one's a great example of hemispherical lighting having depth.
I find U4's better, actually. You just need to know where to look at:
Right. There are moments where the lighting works, and it's because the secondary illumination is in effect. In your screenshot it's nicely baked into the rocks using coloured lighting and matches the camera view so looks correct. In my screenshot with Nate climbing, the secondary lighting was broken/inadequate, while there are other scenes with handholds illuminated on top when they shouldn't be and such. The difference between TTC and UC4's demo is TTC's lighting is all realtime calculated in engine, so doesn't change for a particular view. Every shot demonstrates the same correct (within the limits of the approximation) lighting, whereas in UC4's demo it was hit and miss. And importantly, it was all 100% accurate in the trailer, which is what made the demo stand out as 'not as good' for some folk. But TTC is only mentioned as an example of how soft lighting works and should look, and it's not expected for UC4 or other games to have the same exact look or tech. UC4 will just need (and almost certainly get) some tech to improve its secondary illumination.
 
Makes no real difference unless you have significant contrast from a direct sunlight or similar. When the materials are dark, the secondary illumination is dark, but the exposure will still balance it out.
http://www.davidhanauer.com/buckscounty/ringingrocks/photos/ringing_rocks_2006_04.jpg
http://mylittlenorway.com/wp-content/uploads/2008/08/arctic-circle-rocks.jpg
http://upload.wikimedia.org/wikipedia/commons/f/f6/Shag-Rocks-en-Route-to-South-Georgia.jpg - this one's a great example of hemispherical lighting having depth.
They look like they have a high albedo to me. Plus, while the pictures are taken in an overcast setting, it's also on the middle of the day.

Right. There are moments where the lighting works, and it's because the secondary illumination is in effect. In your screenshot it's nicely baked into the rocks using coloured lighting and matches the camera view so looks correct. In my screenshot with Nate climbing, the secondary lighting was broken/inadequate, while there are other scenes with handholds illuminated on top when they shouldn't be and such.
More light probes scattered through the levels should fix that.

The difference between TTC and UC4's demo is TTC's lighting is all realtime calculated in engine, so doesn't change for a particular view.
The shots you posted aren't realtime. They're high-end renders:

"When I first joined the project in early 2012, there was already a good deal of concept art created for the game, showing this very soft look.

The art team was producing all of this with Octane Render, a GPU raytracer And it became clear very quickly that going for a normal deferred plus shadows rendering solution was not going to cut it Especially as the world was dynamic."


Pages 4 and 5:
http://fumufumu.q-games.com/archives/Cascaded_Voxel_Cone_Tracing_final_speaker_notes.pdf

Actual game screenshots like the one I posted previously aren't particularly amazing. In fact, they resemble nothing the first screenshot you posted (the one with the fruit) because the lighting model they use is for large scale objects only (0.4m and bigger) so small objects don't contribute indirect light at all.

Every shot demonstrates the same correct (within the limits of the approximation) lighting, whereas in UC4's demo it was hit and miss. And importantly, it was all 100% accurate in the trailer, which is what made the demo stand out as 'not as good' for some folk. But TTC is only mentioned as an example of how soft lighting works and should look, and it's not expected for UC4 or other games to have the same exact look or tech. UC4 will just need (and almost certainly get) some tech to improve its secondary illumination.
Two things:

1) The U4 trailer all happened on the exact same location so of course the lighting was consistent. The U4 gameplay demo went through several locations with different lighting conditions.

2) The TTC lighting is consistent because pretty much everywhere you go you have a white floor with some colored objects on top (except for the caves, that is).
 
Status
Not open for further replies.
Back
Top