Rendering tech of Infamous Second Son

If I had to guess, I would say that they use for their wetness effect so that they can "flatten out" the puddles.
 
While the CPU has ended up working pretty well, it’s still one of our main
bottlenecks.

The only area of concern, which I think Sony somewhat dropped the ball on. From a pricing standpoint and thermal design - I do understand the choices that had to be made. But I often wondered if AMD/Sony could have worked on integrating a slightly more robust Cell processor with the current GPU solution. But the hardware is what it is, a nice piece of hardware for the money. :smile:
 
I doubt they need all those 85 MB of buffers simultaneously. Most likely they could write new data on top of existing data and/or do in-place modifications by compute shaders (instead of needing multiple buffers). But of course if you don't need to optimize your layouts, then you can come up with these big numbers.

Are you sure about that? Just look at the what those "unoptimized" 85MB for g-buffers produce with Infamous:

https://farm6.staticflickr.com/5530/13682110484_06c2af78bf_o.png
https://farm8.staticflickr.com/7200/13681789995_e7a74670ee_o.png

But I am pretty sure with some extra work you could slice those numbers to half (or even lower) without affecting image quality in any meaningful way.

Define meaningful. Maybe 85MB of g-buffers instead of "half (or even lower)" is just what makes Infamous so incredible compared to (any) previous console games because of the law of diminushing returns.
 
Er, is it an official consensus that it's so incredible?

Don't get me wrong, it's not bad at all, but most of the stuff isn't beyond Uncharted 2 that much (except for texture / polygon res). The nighttime / rainy weather reflections are what's mostly outstanding visually, and even that's not that far above GTA 4 in general feel (yeah it's got a level of occlusion and such that makes it more precise though).
 
Are you sure about that? Just look at the what those "unoptimized" 85MB for g-buffers produce with Infamous:

https://farm6.staticflickr.com/5530/13682110484_06c2af78bf_o.png
https://farm8.staticflickr.com/7200/13681789995_e7a74670ee_o.png



Define meaningful. Maybe 85MB of g-buffers instead of "half (or even lower)" is just what makes Infamous so incredible compared to (any) previous console games because of the law of diminushing returns.

Is the weird off set for the car headlight reflection on the road because it's a screen space effect?
 
Looks like the bumper is just blocking the light.

Sod I used the wrong term, you're right the discontinuity between the car and reflection probably is the bumper. What I meant was the angle of the lights seems not to be parallel with the car. I would expect the bright centre beam of the right hand headlight (as seen from the camera) to be hitting Delsin's feet instead even the left hand headlight beam is far to the right of his feet and over the centreline of the road
 
The brightest diffuse part of the car's headlight is definetly hitting Delsin's feet. What we percieve as the brightest part on that scene though is the specular reflection, wich is camera dependent.
My guess is it's a regular deferred point light much like those of past gen games, and the source's position in space is indeed slightly in front of the headlight (as opposed to inside it) to cheapily mimic the bumper blocking light effect without it actually having to cast dynamic shadows.
 
I don't personally like storing materials properties (or any other static data) to g-buffers because that basically increases your BW usage by 9x. Instead of reading DXT-compressed (per pixel) material property once, you need to read it (1x BW) + store it uncompressed to g-buffer (+ 4x BW) and then read that uncompressed data again in the lighting stage (+4x BW). Of course if you don't have access to your entire texture data set in the lighting shader (by virtual texturing, bindless or packing all texture data to big atlas), you need to gather it to g-buffer (and pay the extra BW cost).

You sure are a big proponet of this "virtual texture space material properties buffer deffered rendering type thing" (for lack of a better name for it) Which indeed does sond like a very good idea. Is the new trials using something like that already? You should deffinetely right some article on the subject when you get it working. Would be and amazing read.

As for the extremely PHAT g-buffer used by Infamous, I guess that is a perfect exemple of Cernys time-to-poly philosophy, though it is really time to pixel here, hahaha. You could definetely find a way to implement the same features in some way or another with similar performance on xone with clever coding and optimizations, but on ps4 you can do all that without so clever coding and neither many optimizations, and ship the game, and drop many people's jaws with it. I'm sure their next games are gonna do cleverer things to save up memory and bw on the g-buffer front there, but since the game already runs smooth with this 85Mb layout, they might jsut optimize it so that they can cram even more stuff in there for aditional rendering effects. Even if they do read their material param's from virtual texture cache as you suggest, there are many stuff you can do with a thick G-buffer, like full-res SS reflections, sss, screen space spherical harmonics directional occlusion for faking out contact shadows for un shadowmapped lights, or some crazy new per-pixel spacial offset thing for screen-space parallaxing - Carmak suggested that once.
 
Sod I used the wrong term, you're right the discontinuity between the car and reflection probably is the bumper. What I meant was the angle of the lights seems not to be parallel with the car. I would expect the bright centre beam of the right hand headlight (as seen from the camera) to be hitting Delsin's feet instead even the left hand headlight beam is far to the right of his feet and over the centreline of the road

That is how wet streets look. The reflection appears to stretch toward the viewer.

m2jnqw3.jpg
 
That is how wet streets look. The reflection appears to stretch toward the viewer.

m2jnqw3.jpg

Doh! I guess I just never noticed before and their 'pointing' towards the centre of the screen led to me making 2+2=5. The more I think about it the more it makes sense, still if you don't ask the questions you don't learn the answers!
 
Are you sure about that? Just look at the what those "unoptimized" 85MB for g-buffers produce with Infamous
Didn't you read the article? In many places they say it themselves: "Simpler code, use big linear buffers", "Room to improve here for sure, but simplicity has its bonuses". They traded memory to make development time faster. I am sure they could pack those g-buffers to smaller space in the future if they needed the memory and bandwidth for something else.

Using time elsewhere (than optimizing the memory usage) seemed to be a good call for this game. It's always hard to make launch window games in time, especially if they look as good as this one. It's great that both console manufacturers chose to put 8 GB of memory in their devices. Large memory makes production easier (not required to optimize everything to death like you had to do in last gen consoles).
You sure are a big proponet of this "virtual texture space material properties buffer deffered rendering type thing" (for lack of a better name for it) Which indeed does sond like a very good idea. Is the new trials using something like that already? You should deffinetely right some article on the subject when you get it working. Would be and amazing read.
Virtual deferred rendering is not used in Trials Fusion. I am not yet ready to talk about our future plans, but I will do a technology interview about Trials Fusion soon. It will give you technical information about our next gen choices (and trade-offs).
 
Er, is it an official consensus that it's so incredible?

Don't get me wrong, it's not bad at all, but most of the stuff isn't beyond Uncharted 2 that much (except for texture / polygon res). The nighttime / rainy weather reflections are what's mostly outstanding visually, and even that's not that far above GTA 4 in general feel (yeah it's got a level of occlusion and such that makes it more precise though).

It is texture, polygon and IQ. For console player it is a big step, many console player don't play on PC. I use my laptop to play indie game. I hope future game will not sacrifice IQ too much.
 
Last edited by a moderator:
Didn't you read the article? In many places they say it themselves: "Simpler code, use big linear buffers", "Room to improve here for sure, but simplicity has its bonuses". They traded memory to make development time faster. I am sure they could pack those g-buffers to smaller space in the future if they needed the memory and bandwidth for something else.

If you are sure I am convinced then.
 
It is texture, polygon and IQ. For console player it is a big step, many console player don't play on PC. I use my laptop to play indie game. I hope future game will not sacrifice IQ too much.

Laa-Yosh meant in terms of lighting precision probably.
And i agree, i dont see nothing spectacular on those shots in terms of lighting precision that would explain high precision buffers in comparison to games that use lower precision buffers.
 
Guys, this is a tech thread, not another argument on one's opinions of impressiveness.

And i agree, i dont see nothing spectacular on those shots in terms of lighting precision that would explain high precision buffers in comparison to games that use lower precision buffers.

I think the argument would help better if there were a comparison of how the buffer precisions or rather attribute precisions would have affected the results. :) (Crytek certainly had a couple when discussing their trade-offs on PS360 for their buffer formats).

Graham wrote up a good post a while back on certain attributes that benefit more from retaining high precision. Are there trade-offs to precision that can be made? Sure. Sebbbi made the case many times. MJP did also make the case for needing higher precision for certain things still. It depends.

Besides, as already mentioned in the presentation (and already reiterated by Sebbbi), decisions were made for ease of development and time. That's it. Even Crytek just sticks to FP16 on PC at times. Easy fix.
 
Last edited by a moderator:
The Infamous postmortem has been updated here with new notes on almost all pages.

Very interesting comments from Adrian Bentley, a few excerpts:

Page 24 & 25, Memory:



Page 39, CPU:



Page 41, G-buffers:



Page 57, Compute
What are compute queues and what advantages do they have?

That is how wet streets look. The reflection appears to stretch toward the viewer.

m2jnqw3.jpg
That's a real photo, not the game. If that's the game then it's one of the most amazing things I've seen in a game in real-time.
 
That's a real photo, not the game. If that's the game then it's one of the most amazing things I've seen in a game in real-time.

He's trying to illustrate how the direction of the light reflection is mimicked by the game, and that the reflection does not run parallel to the surface. ;)
 
He's trying to illustrate how the direction of the light reflection is mimicked by the game.
Thanks for clearing that up. Tehre was a point when I was doubtful whether it was a photo or the game, but I think we will never see anything quite like that in games, ever.

Maybe when Ray Tracing is feasible, next gen.
 
Back
Top