• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Digital Foundry: The Surge: PS4/Pro/XB1/PC Complete Analysis

Magneto-perfection.gif
 

KOCMOHABT

Member
... the team switched to clustered deferred renderer, as opposed to the deferred solution used in Lords of the Fallen. [...] The artists can include hundreds of lights in the scene which are then clustered into the grid where they can be queried in a forward shader

which one is it then clustered forward or clustered deferred?

Compared to the dual g-buffer setup of Lords [note: dual g-buffer?] the Surge enables more lights in a scene and faster overall performance

WHICH ONE IS IT THEN? 100% of every deferred renderer, no matter if clustered or not has a g-buffer... so is it a forward renderer after all?

Digital foundry confuses me again with their tech talk.
 

TitusTroy

Member
how could the game look so bland and generic (from a graphics standpoint) with so much good tech within the Fledge Engine?...the article talks about the much improved lighting, particles, shadows etc, so I would expect it to look much better (on PC especially)
 

Tagyhag

Member
For someone with a 1080p TV, I assume performance is the way to go? How much is gained on a 1080p screen with downsampling in quality mode, vs. the FPS gain from performance? Are there any additional effects present in quality that are missing in performance?

Even if you had a 4K TV I'd recommend performance, this is an action game.
 

Fafalada

Fafracer forever
dark10x said:
Yep, I was really impressed by the Pro support.
When you say 150% for effects, are you referring to increase in addition to screen res? Because resolution would already be 225% up on its own.
 

Lister

Banned
WAF on youtube gives it a Wide scren rating of 5 out of 5.

Even the movie cut-scenes are 21:9! yay!
 
I showed a friend this video and he bought the game! Good work John and of course, Deck 13! I'm planning on getting it once they add HDR since I have a good backlog to worry about!
 

Tagyhag

Member
Not everyone has to have 60fps to enjoy an action game. 30fps with proper frame pacing can be enough to enjoy the resolution bump.

Sure, but clear improvements are clear improvements. The framerate directly affects gameplay, especially in action games where input lag has to be as low as possible.
 
how could the game look so bland and generic (from a graphics standpoint) with so much good tech within the Fledge Engine?...the article talks about the much improved lighting, particles, shadows etc, so I would expect it to look much better (on PC especially)

Art matters a lot. Deck13 is a small studio with a presumably small budget. Art creation is by far the most expensive and time consuming part of game production
 

pottuvoi

Banned
which one is it then clustered forward or clustered deferred?



WHICH ONE IS IT THEN? 100% of every deferred renderer, no matter if clustered or not has a g-buffer... so is it a forward renderer after all?

Digital foundry confuses me again with their tech talk.
It's very common for deferred renderers to render transparent surfaces using forward rendering pass. (Due to deferred transparent rendering can be very costly for memory and performance.)
In many cases this has lead to transparent fx having different lighting than rest of the scene. (IE. windows or particles not having dynamic lights.)

With clustered light approach, it's easy to use light clusters for volumetrics and transparent surfaces as well. (Either use same information or generate separate clusters for transparent surfaces.)
Thus for opaque surfaces clustered deferred and transparent surfaces a clustered forward rendering pass.
 

dark10x

Digital Foundry pixel pusher
When you say 150% for effects, are you referring to increase in addition to screen res? Because resolution would already be 225% up on its own.
Uhh, doh. I only multiplied a single axis. It's 2.25x the pixels - 1.5x in each direction. That's what I get for rushing through. What I was trying to say is that they aren't using any lower resolution buffers here - everything is increased by 2.25x.

t's very common for deferred renderers to render transparent surfaces using forward rendering pass. (Due to deferred transparent rendering can be very costly for memory and performance.)
In many cases this has lead to transparent fx having different lighting than rest of the scene. (IE. windows or particles not having dynamic lights.)

With clustered light approach, it's easy to use light clusters for volumetrics and transparent surfaces as well. (Either use same information or generate separate clusters for transparent surfaces.)
Thus for opaque surfaces clustered deferred and transparent surfaces a clustered forward rendering pass.
That's right. In addition, regarding the G-buffer comment, Lords of the Fallen used two G-buffers in its solution to handle transparency but it was costly.

John, any word from Deck13 regarding AA? This game could really use a temporal solution.
Well, they apparently tested TAA at some point, but didn't end up going with it. I wouldn't expect it to appear in a patch but it seems like it would definitely improve things.
 

Markitron

Is currently staging a hunger strike outside Gearbox HQ while trying to hate them to death
I think this has pushed me over the edge, I'll be picking this up for sure. This has made Arkane look pretty lazy in comparison IMO.

Sure, but clear improvements are clear improvements. The framerate directly affects gameplay, especially in action games where input lag has to be as low as possible.

I play my games on a 65'' 4K TV, and the difference between 1080p and even 1440p is immediately noticeable. I find the softer image to be really distracting, as long as a game is rock solid 30 fps then I prefer higher resolution. 60 fps is always nice but it's certainly not a necessity when I can get used to 30 fps after a while.
 
which one is it then clustered forward or clustered deferred?
Maybe “compute“ shader is meant there? It should be given 'clustered'.
A compute shader is probably whar quweries tge tiles /light list/ clusters like in all the “+“ schemes (well most, there is a “+“ set up I once saw that used a mon-compute method to conglomerate the tiles....
 

KOCMOHABT

Member
That's right. In addition, regarding the G-buffer comment, Lords of the Fallen used two G-buffers in its solution to handle transparency but it was costly.

That's a very interesting approach, and something Killzone Shadowfall does as well. Technically it's creating a g-buffer for every single particle, it's just that all these textures are stored in an atlas. Relatively wasteful, too, since you have to store position with 3 channels instead of 1 (depth), since they are not stored in view projection space.

Seems LOTF uses the same technique. (EDIT: But they use vertices only, Killzone used more than 4 pixels per particle https://de.slideshare.net/philiphammer/the-rendering-technology-of-lords-of-the-fallen)

Every normal deferred renderer has a forward pass for transparencies, but I feel like it wasn't very clear from your video that you are talking about non-opaque objects.

Maybe “compute“ shader is meant there? It should be given 'clustered'.
A compute shader is probably whar quweries tge tiles /light list/ clusters like in all the “+“ schemes (well most, there is a “+“ set up I once saw that used a mon-compute method to conglomerate the tiles....

Not necessarily, you can do that with a pixel shader, too. Compute shader is more or less mandatory for setting up (min/max depth) the clusters, culling the lights and creating the list from which to query.
Forward+ is a hybrid of clustered and tiled, it sometimes clustered forward is also referred to as Forward+.
 

Tecnniqe

Banned
Deck13 is showing their strength, be it engine or optimization work. I quite enjoy the game and the fact it runs so smooth at 3440x1440 maxed with resolution scale in use and above 60fps at all times is quite amazing. It feels like a proper game with the systems spec and feature in mind as I don't think the game ever removed or boxed off anything to 16:9.

I give this a Techical Masterpiece/10
 

Raide

Member
Really good video. Performance seems like a huge upgrade over their last efforts.

Hopefully it means the Scorpio version will be 4k 60, or close enough.
 

Patrick S.

Banned
That's a very interesting approach, and something Killzone Shadowfall does as well. Technically it's creating a g-buffer for every single particle, it's just that all these textures are stored in an atlas. Relatively wasteful, too, since you have to store position with 3 channels instead of 1 (depth), since they are not stored in view projection space.

Seems LOTF uses the same technique. (EDIT: But they use vertices only, Killzone used more than 4 pixels per particle https://de.slideshare.net/philiphammer/the-rendering-technology-of-lords-of-the-fallen)

Every normal deferred renderer has a forward pass for transparencies, but I feel like it wasn't very clear from your video that you are talking about non-opaque objects.



Not necessarily, you can do that with a pixel shader, too. Compute shader is more or less mandatory for setting up (min/max depth) the clusters, culling the lights and creating the list from which to query.
Forward+ is just another name for clustered forward shading.

8dJ7TWz.png
 
I feel Sony has dropped the ball with the Pro, just a little, and Scorpio is going to make quality mode/performance mode/downsampling for 1080p universal benefits....
Downsampling will be universal on Scorpio if the game runs above 1080p. But extra modes which do that, or which boost the framerate above the original target, will be patches and at developer discretion, just like on Pro.
 
Not necessarily, you can do that with a pixel shader, too. Compute shader is more or less mandatory for setting up (min/max depth) the clusters, culling the lights and creating the list from which to query.
Forward+ is a hybrid of clustered and tiled, it sometimes clustered forward is also referred to as Forward+.

Yeah, btw, is your Monogame engine clustered / tiled / some other form or just straight classic deferred at this point for opaque stuff? ^_^ How do you handle particle shading (perhaps you have not gotten that far yet)?
 

KOCMOHABT

Member
Yeah, btw, is your Monogame engine clustered / tiled / some other form or just straight classic deferred at this point for opaque stuff? ^_^ How do you handle particle shading (perhaps you have not gotten that far yet)?

Sorry for offtopic

classic deferred and classic forward. I actually needed to check, since I wasn't sure. If you are interested the basic setup for a tiled forward renderer with CPU culling is done, just commented out.
Monogame does not allow for compute shader use (not mobile /cross-platform friendly, not a priority), so there's that. I am probably going to switch to raw Vulkan, dx12 or dx11 at some point, but I don't have a lot of time right now so the quick setup with the XNA framework outweighs the negatives. Compute shaders are pretty much necessary for efficient light culling for tiled or clustered rendering.

If I have time for this stuff I'd like to explore signed distance field rendering further before going back to the basic lighting setup.


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

It should be noted that tiled or clustered deferred rendering is not always a win in terms of performance.

The basic idea of deferred rendering is to apply the light only where it's necessary, so for example all the pixels a light's bounding sphere covers. Only visible pixels and only those close to the light source get touched. Great.

That's pretty good, but if we have multiple lights overlapping each other, then for each light we have to read the depth/normal/roughness/metallic (relevant g-buffer parts) for each pixel multiple times (once per light) to compute the lighting accumulation.
Texture reads are expensive and we repeat a lot of stuff every time (for example recovering the 3d normal from the 2-channel normal buffer).

The idea of a tiled renderer then is to split up our rendertarget into tiles, each of which has associated a list of lights that touch that tile.

Now, for each tile, we only read out depth/normal etc. once and use these values for all the lights in the tile.
The win here is that we save many texture reads. If we downsample the min/max depth for each tile beforehand we can also disregard lights that aren't even visible. Another win. We can also use this information to use tiled/clustered forward rendering for transparents, which can be a big plus.

The downside then is that we have to downsample our depth buffer to a min/max representation first and then we have to make non-trivial checks to see what light touches what tile. Then creating good representations/lists that can easily recover and store all the data (lights per tile) is not trivial either and can potentially eat up a lot of memory if the tiles' information is not very similar. (I don't want to go off-topic, but downsampling the depth buffer is useful for many other things, too, even in a default deferred solution)

Another downside is that if our light only touches one pixel of a tile we have to check all the other pixels against that light later on, even though most of them are void.

So there are clearly cases where vanilla deferred might outperform tiled/clustered lighting - mainly when lights do not overlap very much.

If you are interested you should checkout the Crysis 2 sandbox editor, which I think you might be familiar with :). Interestingly Crytek added cvars to enable tiled deferred rendering (and corresponding debug modes) instead of vanilla. Their implementation, at that time, was slower than the default one and they chose to not use it in the final game.

I wrote a bit about that when I was a total Crytek fanboy back in the day here: https://web-beta.archive.org/web/20140722203319/http://www.crydev.net/viewtopic.php?f=355&t=69239 (scroll down to Let's tile those lights!)

Should be noted that I didn't actually write my own shaders back then, so my understanding of everything was not as deep.

EDIT: Not sure the wayback machine works as a direct link
If not, you need to search for http://www.crydev.net/viewtopic.php?f=355&t=69239 at https://web.archive.org/
 

Fafalada

Fafracer forever
dark10x said:
What I was trying to say is that they aren't using any lower resolution buffers here - everything is increased by 2.25x.
Ah yea - that makes sense, and it's good to know for IQ purposes that oversampling is global :)

Raide said:
Hopefully it means the Scorpio version will be 4k 60, or close enough.
Not unless Scorpio recently got a 2.5-3x spec upgrade.
 

Raide

Member
Ah yea - that makes sense, and it's good to know for IQ purposes that oversampling is global :)


Not unless Scorpio recently got a 2.5-3x spec upgrade.

Possible just 1620p+@60 maybe. If they can lock 60, then a 4k30 would be nice for the Performance Setting.
 

kuYuri

Member
I'm so glad to see that The Surge is super solid across all platforms. Gotta give it to Deck 13 for putting in some work on that engine.

Surprisingly, the game is also $50 rather than $60 on PC.
 
It runs incredibly well for me on PC, with a i5-2500K and 1070 I get 60FPS locked with max settings, seen maybe a couple drops to 58-59 which I suspect is a loading hitch.
 

d13phammer

Neo Member
which one is it then clustered forward or clustered deferred?

WHICH ONE IS IT THEN? 100% of every deferred renderer, no matter if clustered or not has a g-buffer... so is it a forward renderer after all?

Digital foundry confuses me again with their tech talk.


It's clustered deferred (with 128 bpp G-Buffer) for solids and clustered forward for transparents. Happy to go more in-depth on request.
 

JaseC

gave away the keys to the kingdom.
Surprisingly, the game is also $50 rather than $60 on PC.

Yeah, Focus is just about the only publisher that doesn't apply the "console tax" to its full-price games. Come to think of it, even Styx 2 is cheaper ($40 versus $50 on PS4/X1).
 

d13phammer

Neo Member
Great work, first of all.

Did you evaluate prepass + forward only a la Doom?

Thank you!
The clustered forward solution made it pretty late into the game. Until then we still kept the "double gbuffer approach" mode for transparents from LotF so artists could review their content.
After that, we've been too busy optimizing the game to try out new things. But we all loved the Doom approach and might give it a try in future projects.

Especially for VR or other projects requiring MSAA, this might be the way to go I think!
 

haikira

Member
Was only planning to pick up Injustice 2 for the rest of the month, but watching this on Wednesday pushed me over the edge, and I picked it up on my way home that same day.

Put a couple of hours in so far on the ps4p, and i've been playing with the performance mode enabled. Really digging the game so far, and definitely glad I went for it.
 
Top Bottom