I just got done recording the Diecast. At one point Paul and I answered a question regarding where game engines might go next. On the show, I predicted that ray tracing was the next big thing, but we weren’t there yet. I was thinking of a couple of videos from a few years ago like this one and this one. Those are from 2013 and 2014. It looked promising, but it was clear the technology wasn’t quite ready yet.
But then I discovered that I was completely wrong. Ray tracing isn’t a couple of years off. It’s here. It’s happening right now. Check out this video, which shows off some footage from Battlefield V and Metro: Exodus:
To be fair, this isn’t full ray tracing. From what the devs have said, this is a sort of half-step between what we’ve been doing and full ray tracing.
Here’s how it’s worked in the past…
We used triangles. All the crap in the world is made out of triangles, and we draw them to the screen. It’s that simple. Well, not “simple”. It’s still a monumentally complex process that’s challenging even to people with genius-level IQs, so I guess calling it simple isn’t really fair. A lot of sorcery goes on between the point where the game loads all the polygons into a buffer and the moment where it shows up on your monitor. Still, it’s conceptually simple. You can think of those triangles like brush strokes on a canvas. Some of them are drawn over others, and the image is built up like this until it’s ready for your eyeballs.
For contrast, ray tracingThere’s ray tracing and path tracing, but the differences between the two are too subtle for this discussion. (Also, I’m too lazy to research those differences right now.) draws each pixel on the screen exactly once. For each pixel, it projects a ray outwards from the camera, seeing if that ray collides with any of the stuff in the scene. It bounces this ray from surface to surface, adding information to this particular pixel’s lighting calculation.
Based on what the developers are saying in these presentations, it sounds like they’re combining these two methods. The lighting is ray traced, but the polygons… aren’t? I don’t know. I’m having trouble picturing how this is supposed to work because I’m so far out of my depth.
I will say that while Battlefield V and Metro: Exodus look impressive, they don’t have that same impact you get from fully ray traced scenes. This stuff looks cutting edge, but you can tell it’s not a photograph. I see two big improvements with this new system:
- The reflections are as sharp as the rest of the scene and aren’t approximations. I guess this means games might start giving us mirrors again.
- As the Metro demo showed, dark corners won’t be over-illuminated. The way we do things now, we have a system based on hard shadows. If you look under a bed, then the area hit by the room light will be bright and the area in shadow will be uniform. In the real world, areas directly under the bed should be very dark, while the area near the edge should be a little brighter due to secondary illumination. Light bounces off the walls and lights up those shadows, but the deeper you go the less of that secondary light will reach.This probably sounds like obsessing over a trivial detail, but this is one of those things that makes the lighting look a bit… odd. It also sucks the contrast out of the scene because you don’t get any deep dark corners. The spot of floor at the back of the closet is getting just as much ambient light as the spot on the wall where your hand is casting a tiny shadow. Programmers have spent the last few years cooking up ways to hide this problem. If you’ve ever seen “ambient occlusion” in the graphics options, that’s what this was about. Between that and making shadows blurry, they’ve managed to make a system that looks pretty good.
Anyway, just a heads up that my talk during tomorrow’s podcast is going to be drawing from information that’s about 4 years out of date.
Dear games industry: Good job. That’s nice, but don’t make me upgrade my graphics card for this. It’s nice and all, but it’s not “five hundred and ninety-nine U.S. dollars” nice.
 There’s ray tracing and path tracing, but the differences between the two are too subtle for this discussion. (Also, I’m too lazy to research those differences right now.)
The Disappointment Engine
No Man's Sky is a game seemingly engineered to create a cycle of anticipation and disappointment.
The Best of 2014
My picks for what was important, awesome, or worth talking about in 2014.
Push the Button!
Scenes from Half-Life 2:Episode 2, showing Gordon Freeman being a jerk.
The Biggest Game Ever
How did this niche racing game make a gameworld so massive, and why is that a big deal?
Starcraft: Bot Fight
Let's do some scripting to make the Starcraft AI fight itself, and see how smart it is. Or isn't.