This week Michael is talking about ray tracing. Ray tracing is an odd thing. It’s both the most primitive and the most advanced way to create lighting in a scene. It’s basically just a brute force solution. You simulate the light. It’s crazy expensive is terms of CPU power, so I was shocked at how fast his lighting system is. Apparently his program can render a single frame in just 2.4 seconds. Now, that’s too slow to actually use in a game. But I remember messing around with ray-traced scenes in the early 90’s, back when a single frame would take over a minute.
I haven’t thought about ray tracing in a while, and I guess the progress from 60 seconds to 2.4 seconds sounds about right-ish for the CPU speed increases we’ve seen since then. (Allowing for the fact that our screens are now larger so we have more pixels to contend with. Perhaps it’s even possible to render a 640×480 or 800×600 scene at interactive framerates.) But it was still shocking to be reminded of how far we’ve come.
Keep in mind that most graphics technology is about lighting, and most lighting is about trying to get as close to the results of ray-tracing without having to do ray-tracing. With ray-tracing, everything will cast shadows, and in a scene with lots of light sources you end up with many overlapping shadows around your feet, creating a dark area. In the 90’s, someone came up with the idea of simulating this by putting a fuzzy shadow-ish dark blob under the feet of characters. It simulated that shadow we’re used to seeing in the real world, thus getting us a tiny step closer to ray-traced appearance without needing to do ray-trace calculations.
Since then, we’ve come pretty darn close. When I talk about the rising cost of game development, I’m mostly talking about the cost of using the newer lighting models. Setting up the lighting in a Crysis-like game can be very complex. All the objects need many textures to describe their color, surface contours, shine, and a bunch of other stuff. We’ve come close to the ray-traced appearance, but we’re spending twenty times as much money to do it. Now all of a sudden I realize that just brute-force ray tracing would be perfectly feasible if it were possible to offload the work onto your graphics card. (I don’t think it is.)
And just to be clear, I’m just musing about how the technology has evolved. I’m not not dreaming about a future when everything is ray traced. Ray tracing can’t give us cartoon shading or some of the other really impressive visual looks we’ve seen over the last few years. (Team Fortress 2, Super Mario Galaxy, Limbo.) Photorealism can go die in a fire.
Anyway, Michael took the data from the Twenty Sided Minecraft server and put it into his program. Here is the result:
Really neat. Read the whole article if you want to know the how & why.
A video discussing Megatexture technology. Why we needed it, what it was supposed to do, and why it maybe didn't totally work.
Silent Hill Origins
Here is a long look at a game that tries to live up to a big legacy and fails hilariously.
Bethesda felt the need to jam a morality system into Fallout 3, and they blew it. Good and evil make no sense and the moral compass points sideways.
Batman v. Superman Wasn't All Bad
It's not a good movie, but it was made with good intentions and if you look closely you can find a few interesting ideas.
Video Compression Gone Wrong
How does image compression work, and why does it create those ugly spots all over some videos and not others?