- Platforms
-
All,
Thanks for the opportunity to join this site! I am hoping that it will be a more pleasurable experience interacting with the fans here. I will be hosting my graphics analysis talks on this site going forward. Without further ado, here's my take on The Medium (xbox/pc).
Some people complained that the Medium is unoptimized in hopes that it would give credence to the argument that most dev studios need years of learning new hardware in order to extract out the full potential of hardware. I resist this claim and so I decided to download The Medium and take a look at what's going on.
My initial impressions of the Medium is that this renderer is focused on "quality" pixels. What does this mean? It means that most pixels that make up a frame are pretty costly and return an extremely good approximation to the rendering equation. For example, if I pass a vertex through the pipeline and begin to texture it with a typical texture (i.e. 2k) and then evaluate it through a typical directional light source using the simplest diffuse equation (i.e. Lambert) along with adding a basic specular highlight - my pixel is relatively cheap in cost. However, if I was to make that same pixel use a complex Oren Nayar diffuse model, sample an area light, then add a GGX specular model with anisotropy, I've made a very expensive pixel. Here's a vid of the PBR materials and how you can tell how complex they are:
The Medium goes above and beyond this with their graphics engine using RT. But it doesn't stop there. I can only "guess" at how their rendering pipeline would be like with so many individual framebuffers to fill up. Their 2 world camera system with individual rendering isn't exactly half the performance, but it's definitely a big drop. Let's take that system and put RT in the mix and on top of that render RT transparency materials. Too ambitious.
Ray traced transparency is the #2 most computensive calculation in ray-tracing. Here's a pic of a recent talk at the GDC over RT transparency:
It's great that it's order independent. That means no sorting polygons first before running through the rest of the pipeline. Bad for computing fresnel calculation using an index of refraction term. Downside? Still using texture-space though. Still no worldspace calculations like in film but it's a start.
In the far right upper corner column, you see a ray being cast to an object. It doesn't stop there, it travels through the object to the other side where it has to continue to travel and hit objects behind it. Add a transmission algorithm for the BTDF (transmission function) and possibly many samples to get frosted glass like in the bottom image, and you get a demand that is beyond the capabilities of current hardware (including the 3090). Look at this video of me proving that..
Moving the camera away from the window increases FPS dramactically as the renderer only has to process opaque triangles.
Now to really hit home the point, I did a test whereby I render the entire window door (large object) to take up the entire camera view to force the entire shader to run to simulate what an offline render would do when every single pixel is casting multiple rays in this complex BTDF shader. The results are telling:
FPS drop to the 8s and that's with Balanced DLSS. Realtime RT of this nature is simply not doable on realtime hardware yet. I expect that the next iteration of graphics cards (if they aren't just mild upgrades) could see the likes of nearly the entire rendering engine using worldspace RT with all features enabled. Turning off RT increases the FPS by nearly 6x. A very costly material.
As an aside, I have to nitpick the lack of ambient occlusion. They decided to skip RT ambient occlusion on the dynamically moving character on the floor. She walks across it but her feet aren't planted on the floor. I can't stand this. Nearly every single game still has problems using occlusion properly. We really need to get the GI component of the rendering equation more accurate in these games.
These are my initial impressions of this game. The big takeaway from this post is that some games have cheap cost to each pixel like MIP mapping a small 2k texture/normal map with one directional light source and possibly some screenspace FX. These aren't expensive pixels to render and they show in their appearance if you look at them individually. However, this game and some other ones that have complex rendering algorithms with RT lighting are considered to have "expensive" pixels to render in the pipeline. The Medium does some really radical things with gameplay and forcing a huge bandwidth bottleneck with this game due to it's complex RT decisions and it's dual framebuffer rendering with completely different assets and FX. I think for the Xbox crowd, this should be a game to be proud of because of it's complexity (similar to FS2020 when it releases to XSX).
Lastly, this game is running on UE4. The GPU usage is maxed out at 99%. It's thoroughly rendering the fastest it can and no resources are unused with very little wasted cycles. Unoptimized? Not really. Bad decision to use such an expensive RT feature? Yup. Rendering very expensive pixels and their design for the game forces that. Furthermore, holding 2 different framebuffers where very little data may be cached is asking for trouble. It's not a knock against the studio but really a praise IMO. Very few studios will outright push the hardware to it's knees like Crytek/iDSoftware did back in the day. I like the game and think I'll keep it and skip out on RE8 for now. I'm liking the story.
Thanks for the opportunity to join this site! I am hoping that it will be a more pleasurable experience interacting with the fans here. I will be hosting my graphics analysis talks on this site going forward. Without further ado, here's my take on The Medium (xbox/pc).
Some people complained that the Medium is unoptimized in hopes that it would give credence to the argument that most dev studios need years of learning new hardware in order to extract out the full potential of hardware. I resist this claim and so I decided to download The Medium and take a look at what's going on.
My initial impressions of the Medium is that this renderer is focused on "quality" pixels. What does this mean? It means that most pixels that make up a frame are pretty costly and return an extremely good approximation to the rendering equation. For example, if I pass a vertex through the pipeline and begin to texture it with a typical texture (i.e. 2k) and then evaluate it through a typical directional light source using the simplest diffuse equation (i.e. Lambert) along with adding a basic specular highlight - my pixel is relatively cheap in cost. However, if I was to make that same pixel use a complex Oren Nayar diffuse model, sample an area light, then add a GGX specular model with anisotropy, I've made a very expensive pixel. Here's a vid of the PBR materials and how you can tell how complex they are:
The Medium goes above and beyond this with their graphics engine using RT. But it doesn't stop there. I can only "guess" at how their rendering pipeline would be like with so many individual framebuffers to fill up. Their 2 world camera system with individual rendering isn't exactly half the performance, but it's definitely a big drop. Let's take that system and put RT in the mix and on top of that render RT transparency materials. Too ambitious.
Ray traced transparency is the #2 most computensive calculation in ray-tracing. Here's a pic of a recent talk at the GDC over RT transparency:

It's great that it's order independent. That means no sorting polygons first before running through the rest of the pipeline. Bad for computing fresnel calculation using an index of refraction term. Downside? Still using texture-space though. Still no worldspace calculations like in film but it's a start.

In the far right upper corner column, you see a ray being cast to an object. It doesn't stop there, it travels through the object to the other side where it has to continue to travel and hit objects behind it. Add a transmission algorithm for the BTDF (transmission function) and possibly many samples to get frosted glass like in the bottom image, and you get a demand that is beyond the capabilities of current hardware (including the 3090). Look at this video of me proving that..
Moving the camera away from the window increases FPS dramactically as the renderer only has to process opaque triangles.
Now to really hit home the point, I did a test whereby I render the entire window door (large object) to take up the entire camera view to force the entire shader to run to simulate what an offline render would do when every single pixel is casting multiple rays in this complex BTDF shader. The results are telling:
FPS drop to the 8s and that's with Balanced DLSS. Realtime RT of this nature is simply not doable on realtime hardware yet. I expect that the next iteration of graphics cards (if they aren't just mild upgrades) could see the likes of nearly the entire rendering engine using worldspace RT with all features enabled. Turning off RT increases the FPS by nearly 6x. A very costly material.
As an aside, I have to nitpick the lack of ambient occlusion. They decided to skip RT ambient occlusion on the dynamically moving character on the floor. She walks across it but her feet aren't planted on the floor. I can't stand this. Nearly every single game still has problems using occlusion properly. We really need to get the GI component of the rendering equation more accurate in these games.
These are my initial impressions of this game. The big takeaway from this post is that some games have cheap cost to each pixel like MIP mapping a small 2k texture/normal map with one directional light source and possibly some screenspace FX. These aren't expensive pixels to render and they show in their appearance if you look at them individually. However, this game and some other ones that have complex rendering algorithms with RT lighting are considered to have "expensive" pixels to render in the pipeline. The Medium does some really radical things with gameplay and forcing a huge bandwidth bottleneck with this game due to it's complex RT decisions and it's dual framebuffer rendering with completely different assets and FX. I think for the Xbox crowd, this should be a game to be proud of because of it's complexity (similar to FS2020 when it releases to XSX).
Lastly, this game is running on UE4. The GPU usage is maxed out at 99%. It's thoroughly rendering the fastest it can and no resources are unused with very little wasted cycles. Unoptimized? Not really. Bad decision to use such an expensive RT feature? Yup. Rendering very expensive pixels and their design for the game forces that. Furthermore, holding 2 different framebuffers where very little data may be cached is asking for trouble. It's not a knock against the studio but really a praise IMO. Very few studios will outright push the hardware to it's knees like Crytek/iDSoftware did back in the day. I like the game and think I'll keep it and skip out on RE8 for now. I'm liking the story.