Game development presentations - a useful reference

Still i want a slider in game to tune it further down, because... i just hate it. :) Usually the only things i do in gfx options is vsync on and AO off.
Surley no option for far range AO as in Exodus, but for must games it would be.

I had used raytraced AO for artworks. Decades ago it felt something new and beautiful. But after getting used, it started to feel 'technical'. I did not understand the background of how it's meant to approximate GI, but i saw it's no silver bullet.
Same happened with SSAO: Crysis was awesome, but after some years i started to turn it off mostly in games. Improved SSAO methods did not help so much.

Though i think i'm a rare exception here. Most people seemingly have no problem with it.

I get it, it looks too much like an outline shader, or some sort of unsharp mask thing, too often. I do think there's occasionally a good implementation. It's so refined in RDR2 it's kind of amazing that it's there, but then of course you notice the anti-halos as soon as you start looking. I don't think it's necessarily bad, just often practically bad and never a full replacement for GI.

Worse I feel like I can always see the halos and anti-halos. The two changes I'd love to see for this generation are all area lights, you can clearly see how Square Enix's Project Athia/"Forespoken" looks like old renders where environments have that "uncanny valley" look to them.

forspoken-header.jpg


And I'd love to see temporally stable rendering, or at least as close as can be gotten. The constantly disappearing and reappearing clouds in RDR2 are just plain distracting as Arthur bounces up and down on his horse in front of them, along with all other similar screenspace problems.
 
Last edited:
Worse I feel like I can always see the halos and anti-halos. The two changes I'd love to see for this generation are all area lights, you can clearly see how Square Enix's Project Athia/"Forespoken" looks like old renders where environments have that "uncanny valley" look to them.

'Anti-halos'... that's a very inspiring observation. I did pay attention to such things only in the real world yet. E.g. penumbra of shadows often contain an illusion of discontinuity. Probably we could improve some things with non physical approaches, like fixing the bright hand in above image with some kind of bloom.
Maybe the big success of PBR often makes us blind in some ways, and artists do not dare to complain. Something similar did happen to me, related to that image too: We often used landscape images as background for artwork, and like above they look total shit if there are too much hard shadows. On photographs those shadows are mostly much too dark. They are so in the real world too IMO, but on photos its even worse probably because of range. So i selected my backgrounds primarily with that in mind, often i did retouche shadows away, or even used overcast images but toning them to make it look sunny. Spend a lot of time on this and thought it's a must. But my collegues never did. They did not see the issue, and i did not complain. Nobody else did either.

Now i think above image could look a lot better, simply if shadows wouldn't be that dark. I agree it looks like bad point lighting, but i assume they have something like probes to capture the sky dome, and the sun is a damn point light for real. Trees on sunny day look bad in reality too (in this sense). It could be fixed easily with being 'less physically accurate', i think.
 
Depth peeling is an old and kind of obvious concept with obvious shortcomings. I remember it was applied first time in Nvidia's HBAO+ in Assassin's Creed Syndicate, where they generated 2 separate layers of depth buffer for static and dynamic geometry, the effect was quite pleasant since dynamic geometry is the main contributor to screen space artifacts. I see in this paper they go a little bit further and instead of generating 2 depth buffers in separate passes, they use msaa or something along this line to generate 4x depth buffers in a single pass. That's a good tradeoff since depth only rasterization has 4x speed. That's still only approximation since approaching ray tracing quality would require infinity number of layers. Screen space methods still sample small screen areas to not trash caches and be performant, hence every time I look at the result of work of such technics I wish there were ground truth RT reference shots since that dark dirt in room corners is not something which would produce RT AO with much larger sampling area (it usually produces monotonous lit corners)
I guess this method is a swan song of screen space AOs, but it still suffers from being screen space.

Didn't know about that AC Syndicate AO implementation.

Got me thinking, many games do a depth pre-pass before shading, but that skips on skinned meshes because their geometry processing is too expensive to be worth doing twice (while its a win for static geo).

So I wonder if that was the case woth syndicate already, and whoever implemented the AO was clever enough to sandwich it between these two passes, getting depth peeling "for free"
 
That's really clever - wonder if it has been used in more games?

I had a similar thought, but the other way around, which is: If we have any form of occlusion culling, using stochastic depth map does not work well because hidden samples are missing again :/
Thus it feels more attractive for area shadows to me, where such extra cost is easier to accept in comparison to existing methods.

Area lights is what i thought RT would give us, so the idea comes a bit late. But so do RT GPUs... :/
 
GTC video recordings (requires registration):
Advanced Performance Recommendations
The Next Level of Optimization Advice with Nsight Graphics: GPU Trace
Optimizing Game Performance, Featuring Overwatch
Get the Most Out of Your GPU with Multithreaded Rendering and DirectX12
Implementing Ray-Traced Lighting with RTXDI
ReLAX: A Denoiser Tailored to Work with the ReSTIR Algorithm

Making of Marbles RTX
Introduction to Real-Time Ray Tracing with "Minecraft"
LEGO Builder’s Journey: Rendering Realistic LEGO Bricks Using Ray Tracing in Unity
Crysis Remastered: RTX Features
Ray Tracing in "Cyberpunk 2077"
"Ghostrunner:" RTX for Millisecond-Sensitive Games
RTXGI in "Five Nights at Freddy's: Security Breach"
RTXDI: Details on Achieving Real-Time Performance
Spatiotemporal Resampling with Irradiance Volumes for Global Illumination
Rendering Realistic Caustic Effects in Real Time
Handle Translucency with Real-Time Ray Tracing
Decals in Ray Tracing
Hybrid Shadows
Ray Tracing in One Weekend
Down the Ray-Tracing Rabbit Hole with NVIDIA Developer Tools
Getting Started with Ray Tracing and NVIDIA's Ray Tracing Developer Tools
AAA Development for Indie Developers
The State of RTX in Unreal Engine 4
Machine Learning in Games: Training AI Agents to Race Using Reinforcement Learning
Fully Fused Neural Network for Radiance Caching in Real Time Rendering
Near Real-Time and Universal Texture Synthesis Using Deep Learning

Our "Sniper Elite 4" Journey: Lessons in Porting AAA Action Games to the Nintendo Switch
Collaborative Game Development Using Omniverse
The Future of GPU Ray Tracing
Render-Accelerated Physical Simulation


PDF docs:

Advanced Performance Recommendations
The Next Level of Optimization Advice with Nsight Graphics: GPU Trace

Optimizing Game Performance, Featuring Overwatch
Get the Most Out of Your GPU with Multithreaded Rendering and DirectX12
Implementing Ray-Traced Lighting with RTXDI
ReLAX: A Denoiser Tailored to Work with the ReSTIR Algorithm

Introduction to Real-Time Ray Tracing with "Minecraft"
LEGO Builder’s Journey: Rendering Realistic LEGO Bricks Using Ray Tracing in Unity
Crysis Remastered: RTX Features
Ray Tracing in "Cyberpunk 2077"
RTXDI: Details on Achieving Real-Time Performance
Spatiotemporal Resampling with Irradiance Volumes for Global Illumination
Rendering Realistic Caustic Effects in Real Time
Handle Translucency with Real-Time Ray Tracing
Decals in Ray Tracing
Hybrid Shadows
Ray Tracing in One Weekend
Getting Started with Ray Tracing and NVIDIA's Ray Tracing Developer Tools
Machine Learning in Games: Training AI Agents to Race Using Reinforcement Learning
Near Real-Time and Universal Texture Synthesis Using Deep Learning
Our "Sniper Elite 4" Journey: Lessons in Porting AAA Action Games to the Nintendo Switch
Fully Fused Neural Network for Radiance Caching in Real Time Rendering
Collaborative Game Development Using Omniverse
Render-Accelerated Physical Simulation
 
Last edited:
All links have been updated. Enjoy!;-)

Thanks! Also, hybrid shadows, shadow maps for alpha testing and rt everywhere else. Code complexity and maintenance issues there, but I guess if you really want RT shadows but also have foliage.

That being said, you'd probably get a speedup from virtual shadowmaps, conservative raster, then only trace from samples in some kernel along the shadowmap edges from the mask. You'd miss tiny holes, but only in highly complex meshes, which are probably alpha tested foliage anyway, which is what you're not tracing. But hey, it's a practical way to get RT shadows with triangle geometry if you really want them.
 
Back
Top