Unreal Engine 5, [UE5 Developer Availability 2022-04-05]

With all due respect, for sharp reflections, you need enough samples, and a pretty big depth of tracing to be done. Kindly point me to all those reflections on especially in console games that have a decent sample size to produce sharp reflections and mirror more than a few objects nearby (like watchdogs) or do not severely reduce detail on objects further away (like Spider-Man). From there, multiple bounces are even more of a stretch, if a typical game can’t even get a single bounced reflection with enough depth and resolution. And I am basing this among others on all DF videos on the subject, which I’ve all seen, including the explanation on raytracing. And of course I know how raytracing works simply from occasionally playing around with raytracing software since the first ones were released on PC and it took ages to just render one dumb picture with a few balls.

It is totally and extremely obvious to me that raytracing is the superior solution and that there are situations where only raytracing may be realistically feasible, but as it is also almost painfully clear that the current rendering power available is so limited to the point where many turn off raytraced reflections because it cost so much more in framerate than it delivers, that I wonder about what kind of optimizations and alternatives exist that can help out, and when.

So when I look at Spider-Man for instance and I see the sorry excuse for what remains of the tree in Central Park, say, in the reflection of a building, I am just wondering if some basic raytraced data that can tell where the tree should be placed wouldn’t be seriously enhanced if you just drew the actual tree in the reflective surface using a few rays worth of data to determine where it should have been, say. And I am perfectly happy to hear why that is not feasible, but I think more than anything it is probably a problem that grows in complexity quickly also in terms of graphics engine design. But I bet for most actual flat mirror on the wall type situations on a console just drawing the actual geometry with an extra camera transform could be cheaper for now, to get a convincing quality. There are more diffuse surfaces that require much less precision, for which I imagine raytracing is cheaper quickly.

As for Dreams, that is a combination of SDF and more traditional rendering, depending on the situation, as far as I am aware. But also I am pretty sure that in traditional rendering it is also much cheaper to use this technique, just as it was when the tech first started being used in VFX render era ages ago.

So thank you to JoeJ who took the time to actually explain the limitations of raytracing for curved surfaces and such, that makes sense, that the transformations get too complex or expensive.

What I am sure of is that eventually, raytracing on pure geometry (eventually without textures) is the best solution for practically everything - just multi bounce the lights on everything sufficiently often on materials with the proper information on color, diffuse, etc and you solve lights (and automatically shadows as well), reflections etc. Same for sound, even.

But the current generation of consoles is way off that point, so I’m willing to bet that for large flat surfaces like buildings in watchdogs and Spider-Man using a vector transformation like here could be worth it


Especially if you then use the raytracing for better lighting and shadows instead.

the problem with vector transform-and-render method, is it is only substituting the actual Ray BVH traversal part of the problem, which I actually think is the cheapest one. I think (though we don't yet have much data on this for now) the actual shading of the final ray's hitpoint is what's costing most compute and bandwith. Like your exemple with trees in Miles Moralles: I bet that if they were to use planar reflections on buildings, they'd still rely on lower LODs on the mirror world, and trees would be the most agressively simplified models to reduce on alpha testing overdraw as much as possible.
 
But there is no longer a real reason to use lower LOD models for the reflections on modern consoles and PCs, if you ask me. And the problems with Alpha overdraw in most cases are going to be the same when you look at the tree directly?
 
Epic Games said:
Join us at 10am EDT on May 26 as Chance Ivey, Senior Technical Designer at Epic Games and Galen Davis, Producer/Evangelist for Quixel at Epic Games provide a first look at new game development tools and workflows that will be available with Unreal Engine 5 before exploring a new sample project.



Previously unreleased promotional interview bits from January 2020:

 
Last edited:
It seems the difference compute mciro vs. tessellation is much bigger than ̶C̶B̶ ̶4̶K̶ Native vs CB/DLSS 4K.
It is not different in how it's being perceived by a fan base, it doesn't matter whether it's a PS5, PC, NVIDIA or AMD's fan base.

As for actual technical stuff, there were demos with 16 millions of triangles in view on Kepler back in 2012 with very nice and detailed geometry, but quite frankly GCN in consoles wasn't up to the task, so we had to wait just 6 years or so until game devs came up with appropriate per triangle culling in compute so that 2018-th games, such as Death Stranding, look appropriately close to the 2012 tech demos in detalization (yet, without achieving the same poligon budgets).
It seems this time guys who have learned the lesson (Sony) decided to specifically go in the opposite direction with RDNA in PS5 by making the standard graphics pipeline wide enough and clocking it high enough to accommodate for the next gen geometry requirements right from the launch.

So as the history shows you can solve the same task differently - efficiently in HW or spend 6 years on figuring out how to achieve the same level in software with no guarantee of success and by the cost of the additional SW complexity.

The new sexy micro triangles is just an evolution of both pipelines and as the practice shows it can be done efficiently both in HW on PS5 (HW pipeline evolution) and in SW in case of XSX (SW pipeline evolution), though, it could have been done years ago if there was fast enough HW pipeline in GCN (since dedicated HW is way cheaper and energy efficient).
 
As for actual technical stuff, there were demos with 16 millions of triangles in view on Kepler back in 2012 with very nice and detailed geometry, but quite frankly GCN in consoles wasn't up to the task, so we had to wait just 6 years or so until game devs came up with appropriate per triangle culling in compute so that 2018-th games, such as Death Stranding, look appropriately close to the 2012 tech demos in detalization (yet, without achieving the same poligon budgets).
On the other hand, Keplers compute perf was terrible, so using it for last gen would have caused other limitations on that side, which might have been worse.
The new sexy micro triangles is just an evolution of both pipelines and as the practice shows it can be done efficiently both in HW on PS5 (HW pipeline evolution) and in SW in case of XSX (SW pipeline evolution), though, it could have been done years ago if there was fast enough HW pipeline in GCN (since dedicated HW is way cheaper and energy efficient).
I don't believe PS5 renders Nanite micro triangles with HW rasterizer?
But i know PS4 could have had dynamic GI like Lumen / Metro Enhanced, if the devs had used compute for more than lame culling. That's why all this monster GPU and RT hype feels so wrong to me.
 
Scalpers and miners aside, nah, Ampere actually had a lower MSRP. Its consoles that went up in cost, and in Sonys case, games got a nice hike. If im a easy target, then what are PS gamers? :p
I meant your 2080Ti, not Ampere which would have been almost fine with announced MSRP. Though, Ampere and RDNA2 at MSRP would be still too expensive for the masses i think.
Just increase the price for games lifting them to 80 or more dollars a piece. Happily paying for that, your an easy target aswell then ;)
No mouse, no game. I won't become a console gamer. But i'm envy about their HW optimized for games, not optimized to proof marketing claims.
 
On the other hand, Keplers compute perf was terrible, so using it for last gen would have caused other limitations on that side, which might have been worse.
Yes, it was rather funny how NVIDIA (not so much for NVIDIA) tuned Kepler to be more perf/mm and perf/watt efficient (to fight back against graphics centric terascale in this regard) by making it way less compute centric in comparison to Fermi, but AMD turned into the opposite direction with CGN.

I don't believe PS5 renders Nanite micro triangles with HW rasterizer?
They are using the primitive shaders path: "On PlayStation 5 we use primitive shaders for that path which is considerably faster than using the old pipeline we had before with vertex shaders."

But i know PS4 could have had dynamic GI like Lumen / Metro Enhanced, if the devs had used compute for more than lame culling.
It has it in a number of games (children of tomorrow and Enlisted just to name a few), it's just that geometry and lighting quality in these games is nowhere near UE5 or Metro EE.
 
Yes, it was rather funny how NVIDIA (not so much for NVIDIA) tuned Kepler to be more perf/mm and perf/watt efficient (to fight back against graphics centric terascale in this regard) by making it way less compute centric in comparison to Fermi, but AMD turned into the opposite direction with CGN.


They are using the primitive shaders path: "On PlayStation 5 we use primitive shaders for that path which is considerably faster than using the old pipeline we had before with vertex shaders."


It has it in a number of games (children of tomorrow and Enlisted just to name a few), it's just that geometry and lighting quality in these games is nowhere near UE5 or Metro EE.

https://www.eurogamer.net/articles/...eal-engine-5-playstation-5-tech-demo-analysis

No they are using compute rasterizing because hardware rasterizer is inefficient with micropolygon. They only use primitive shader path for triangle bigger than a pixel.

The full quote
The vast majority of triangles are software rasterised using hyper-optimised compute shaders specifically designed for the advantages we can exploit," explains Brian Karis. "As a result, we've been able to leave hardware rasterizer in the dust at this specific task. Software rasterization is a core component of Nanite that allows it to achieve what it does. We can't beat hardware rasterizer in all cases though so we'll use hardware when we've determined it's the faster path. On PlayStation 5 we use primitive shaders for that path which is considerably faster than using the old pipeline we had before with vertex shaders."
 
No they are using compute rasterizing because hardware rasterizer is inefficient with micropolygon.
They are using compute kernels on PC and XSX/XSS (the SW approach I was talking about), they are using Primitive Shaders for PS5 (the HW approach), no matter whether Primitive Shaders on PS5 are equall to Primitive Shaders (optimized old vertex path on PC) or Mesh Shaders on PC, both pipelines end up with HW rasterization.
 
PS5 has 25% higher triangle setup and rasterization (when not BW limited) rate and 20% less flops (makes it harder to beat HW) in comparison with XSX, also primitive shaders should be highly tuned by Sony for fast SW culling, that's likely the reason why Epic weren't able to beat Primitive Shaders path on PS5.
 
Last edited:
They are using compute kernels on PC and XSX/XSS (the SW approach I was talking about), they are using Primitive Shaders for PS5 (the HW approach), no matter whether Primitive Shaders on PS5 are equall to Primitive Shaders (optimized old vertex path on PC) or Mesh Shaders on PC, both pipelines end up with HW rasterization.

We can't beat hardware rasterizer in all cases though so we'll use hardware when we've determined it's the faster path. On PlayStation 5 we use primitive shaders for that path which is considerably faster than using the old pipeline we had before with vertex shaders."

They use primitive shader when they can't beat the hardware rasterizer when triangle are bigger than pixel. Primitve shader or mesh shader use the HW rasterizer. When a path use the HW rasterizer, some inefficiency problem with micropolygon. Primitive/Mesh shader will only be used for bigger than pixel polygons on all hardware.

optimizing-the-graphics-pipeline-with-compute-gdc-2016-51-638.jpg


https://frostbite-wp-prd.s3.amazonaws.com/wp-content/uploads/2016/03/29204330/GDC_2016_Compute.pdf
 
They are using the primitive shaders path: "On PlayStation 5 we use primitive shaders for that path which is considerably faster than using the old pipeline we had before with vertex shaders."
Majority is compute software:
"The vast majority of triangles are software rasterised using hyper-optimised compute shaders specifically designed for the advantages we can exploit," explains Brian Karis. "As a result, we've been able to leave hardware rasterisers in the dust at this specific task. Software rasterisation is a core component of Nanite that allows it to achieve what it does. We can't beat hardware rasterisers in all cases though so we'll use hardware when we've determined it's the faster path. On PlayStation 5 we use primitive shaders for that path which is considerably faster than using the old pipeline we had before with vertex shaders."
I guess they use HW only for 'large' triangles.
But i missed the following posts above (also the advice to keep on topic, um...)
It has it in a number of games (children of tomorrow and Enlisted just to name a few), it's just that geometry and lighting quality in these games is nowhere near UE5 or Metro EE.
I talk about my own GI work which targeted last gen, so no proof. Still working on tools side so i can demonstrate it's practical...
 
They use primitive shader when they can't beat the hardware rasterizer when triangle are bigger than pixel.
There is no word on this, so you're just guessing.

As for math, PS5 has 147 gigapixels per second peak throughput for FP16 buffers, with 6.25% efficiency this translates into 9.2 gigapixels, modern HW rasterization efficiency is ~95% (from peak), so 8.74 gigapixels, lets say we have 4 ms budget for rasterization, this transtales into 35 megapixels per frame (4K is 9.3 megapixels per frame) or 4 3840x2160 FP16 render targets per frame (without shadow maps), that's the theoretical maximum for HW pipeline on PS5, are you sure SW will be able to beat it in the same 4 ms budget on PS5?
 
"On PlayStation 5 we use primitive shaders for that path which is considerably faster than using the old pipeline we had before with vertex shaders."
only when not faster than their compute shader path.
IIRC, it's majority compute shaders for nanite, then for a small percentage they use primitive shader path.
 
As for math, PS5 has 147 gigapixels per second peak throughput for FP16 buffers, with 6.25% efficiency this translates into 9.2 gigapixels, modern HW rasterization efficiency is ~95% (from peak), so 8.74 gigapixels, lets say we have 4 ms budget for rasterization, this transtales into 35 megapixels per frame (4K is 9.3 megapixels per frame) or 4 3840x2160 FP16 render targets per frame (without shadow maps), that's the theoretical maximum for HW pipeline on PS5, are you sure SW will be able to beat it in the same 4 ms budget on PS5?
Interesting. But you know UE5 composes scenes from overlapping models. It's like an onion skin - often 20 models intersecting to make those cave walls.
So i think they need efficient hidden surface removal, which is easy with compute and coarse front to back drawing, e.g. using tiles and LDS for framebuffer and depth, so they can do early termination after tile max z is larger than all models coming behind that.
Do you think HW raster could deal with such huge overdraw?
 
How is this supposed to work dynamically?
How will they determine in advance whether HW or SW processing is faster for each object or triangle?
I suspect they break the geometry into block/tiles (tiles of 16 pixels) and figure out how many triangles would land in a particular block/area. And it may be some form if greater > or < X number of triangles in this block, then do A or B.
More than X go to compute path
Less than X go the hardware path.
 
Do you think HW raster could deal with such huge overdraw?
Depth rasterization is 4x speed, so you can do super fast depth prepass for main occluders for free, you can warp previous frame depth for free, etc, etc, 4x speed should also help with high res shadow maps, and depth sorting is something which you would like to do with HW rasterization too (should be possible by different means), also Nanite doesn't support grass which is usually the main contributor to overdraw.
You probably noticed that there are demos, a test (3dmark) and quite a few samples with mesh shaders which do exactly this - approaching 1 pixel sizes triangles at highly interactive speeds > 60 FPS.
 
Last edited:
They are using compute kernels on PC and XSX/XSS (the SW approach I was talking about), they are using Primitive Shaders for PS5 (the HW approach), no matter whether Primitive Shaders on PS5 are equall to Primitive Shaders (optimized old vertex path on PC) or Mesh Shaders on PC, both pipelines end up with HW rasterization.
They literally stated that they only use primitive shaders for geometry that is not performant using Nanite (foliage, hair, grass, etc).

And there is no reason the Xbox or PC couldn't also use primitive shaders/mesh shaders for that geometry as well.
 
Back
Top