Real-time Raytracing For PC Games Almost A Reality
Vigile writes "Real-time raytracing has often been called the pinnacle of computer rendering for games but only recently has it been getting traction in the field. A German student, and now Intel employee, has been working on raytraced versions of the Quake 3 and Quake 4 game engines for years and is now using the power of Intel's development teams to push the technology further. With antialiasing implemented and anisotropic filtering close behind, they speculate that within two years the hardware will exist on the desktop to make 'game quality' raytracing graphics a reality."
Or is it? Simply means games will appear more eye-candy than they currently are. Gameplay will not change. EA will continue to use take last years sport game, through some new people into it, perhaps introduce some bug which makes it unusable and peddle it as The New Deluxe Edition. I wonder how many geometric objects it will be able to handle (and whether it handles transparancy with textures and patterns well) Having done a bit of raytracing I'm familiar with how quick things can bog down. It'll probably be a bit clunky at first, but get much better as horsepower and horsepower/dollar ratio improve.
There was some game I played on an Amiga (got that? A really old computer) where I raced around in an aircar zapping stuff (some bastard borrowed the game and I've never seen it since!) Very nicely rendered graphics, beautiful even, nearly looked ray-traced. Must have been about 15 years ago.
While I look forward to more realistic, or creative and beautiful gamescapes, do keep in mind -- we were all blown away by the first high quality animated films, now almost everything animated is rendered, raytraced, etc. and there's a lot of junk out there now. So this will be exciting for about 2 years then become "meh".
Lastly, they've got to get the motion down. Characters in games, including sports, look so damn wooden in their movement! That's where real improvement needs doing.
A feeling of having made the same mistake before: Deja Foobar
...but Q4RT seems to have handicapped most of what makes the Doom 3 engine so impressive-looking to begin with. The reflection effects sure are nice, but it's a long way from making anything comparable to modern methods.
Sure is interesting, all the same.
I was a founder of Deep Productions, one of the Chicago's first rendering farms about 15 years ago. I recall having dozens of Pentium 60s (Were they called Pentium Pros back then?) with 512MB of RAM (if I remember correctly) running a variety of rendering programs (usually 3D Studio, but others based on clients needs). IIRC, a single raytraced frame took about 20 minutes. 2 dozen machines churning full speed were able to render approximately 60 fields per hour, or 1 second of animation in an hour.
I exited that market and Deep eventually moved out of that field entirely, but looking back, I can't believe we made the money that we made at the time. Now that ray tracing is getting closer to real time, it gives me a few minutes pause to realize how much technology has changed in ways that the AVERAGE consumer has no understanding of -- and doesn't need to. In the end, I'm glad that so many entrepreneurs take risks so that consumers needs (and yes, entertainment for some is a need) and wants are fulfilled, without those consumers even knowing the process necessary to get there.
And to the above posts bemoaning the focus on graphics over gameplay, remember if they get a good real-time raytracing system in place then that frees the dev team up quite a bit. No longer having to work so hard on faking proper lighting, they can then focus on the more important things like gameplay/AI/physics.
I wonder if this is still relevant.
Don't get me wrong, I love raytracers, but what once was their exclusive domain (reflections, shadows,...) has been done in a "fake" but very convincing way since the few latest generations of 3D video cards. What's left? True refraction? True curved surfaces? Is it that important? I tend to side with the "give me gameplay" crowd here.
Realtime caustics and global illumination, on the other hand...
My website
As an interesting sidenote to all of this, in 1993 I attended an Amiga fair in southern Sweden, where I saw a game demoed that utilized hybrid scanline rendering with certain "raytracing tricks", in realtime, to achieve what was then considered very life-like imagery. This ran in about 15-20 fps at peak, 320x256 resolution, on an Amiga 2000 with a 50mhz 68030/68882 accelerator board. Very impressive considering how early in time it was. The game also employed certain weak physics; you could pick up items and do anything with them; throw them, drop them, look inside of them; even redecorate the demo scene (which was a eerie lit house). The game at that point was titled Haunted, but unfortunately it never saw the day of light.
I remember fifteen years ago doing VR research work and people joking about real-time raytracing for games and VR. Computers are massively faster now than they were then. Why aren't we doing it at this point?
Resolutions have gone up enormously. Polygon count has gone up enormously. If we talk the sort of quality scenes we were rendering in 1993, it was only a few more years before it was possible to do them real-time... but at that point models were 10x more complicated and you weren't rendering for 320x240, you were looking at 640x480. Now we're doing millions of polygons at HD resolutions.
As long as people want more polygons, more texture detail, and higher resolutions, realtime raytracing will never be a production reality. Better hardware, faster CPUs, etc are all consumed quickly to handle richer environments and then suddenly there isn't overhead for raytracing anymore.
I don't care at all how the video card decides something needs to be rendered, so long as the results look good. I'm not concerned with the "correctness" of the calculations, only the results. I'd be all for a raytracing card if they found a way to make that work faster with less silicon than the existing rasterization systems. However, it seems we've really done a pretty good job of figuring out what can be quickly accelerated in silicon.
I'd much rather have good, fast, fake stuff than something that is done "right". As an example I actually generally like the graphics in UT2004 better than Doom 3. Despite Doom having a more "correct" lighting engine (all light comes from a source in game, there's no magic global lights) I find that the illusion breaks down too easy. Shadows are too hard, textures get too unrealistic when you get next to them (even in ultra mode) and so on. Now a lot of what UT2004 does to fight that is "faking" it. For example the whole detail texture thing. You get close enough to something, it fades in another texture layer over top that adds grit, imperfections, etc to what you are looking at. While that's "faked" it looks damn good and helps keep the illusion.
So I'm with you on the "give me gameplay". If they can make hardware that does raytracing as fast or faster than what we have and if it looks as good or better, great, I'm all for that. However I'm not at all interested in something that ends up being worse visually, either because it is slower or less detailed or whatever, just in the name of doing it more "correct".
Raytracing has no advantage over rasterizing for opaque surfaces. Rasterizers are faster there, since their performance is not tied directly to the screen resolution. The advantages lie in refraction/reflection/shadows/translucency, which are painful to implement with rasterizers.
Actually, there's a big advantage. Raytracing is O(log n), but rasterization is O(n). OpenRT's demo of a 350 million triangle model of a Boeing rendered in real time on a single PC (without GPU support) is a good example. The entire model doesn't even fit in memory, so visible surfaces are cached. The result is still realtime (although only a few FPS) with incredible detail. Go slashdot the server and watch the movie. Modern raster based cards can only render that many triangles in a whole second with all their fancy hardware, if they're lucky.
Incorrect. They typically support alternate-frame rendering (each card does every other frame) for games that are problematic, but the best performance is to be had with tile-based rendering. This is where the SLI setup splits the scene up into a number of tiles, and then the two cards render them all, splitting the load so that each card is working as hard as it can. This is effectively splitting on the pixel level, but in a bit larger chunks. I'm sure that's because whatever overhead is involved probably increases the smaller the tiles get.
"Where are we on the scale."
People sometimes get a little too giddy talking about Big O notation. Yes, something that scales logarithmicly rather than linearly will eventually be faster, but it kinda depends on where you are now if that will happen any time soon and thus is worth worrying about. To use arbitrary units, suppose at an 'n' of 1000 is the intersection point between the line for rasterization and the curve for ray tracing. So when we pass 1000, it starts to be a case that ray tracing is more worthwhile. Now suppose that current generation of graphics is 100, and it grows at a rate of 2 per year. Ya... Ok, not going to be worrying about that any time soon.
I think that was his point is that just saying "But it's O(log n)!" doesn't mean it is necessarily better at this point.
Also there is the silicon problem to be considered. We don't do our graphics on general purpose processors, we do them on highly specialized DSPs that actually have only recently gained turning completeness (and aren't very good at it, they are really slow at branching among other things). The graphics we see today are possible only because we can make a special purpose processor that can accelerate them very efficiently. Can the same be done for raytracing? I don't know. I mean I'm sure it is possible to an extent, especially since it is a very parallel problem, but that doesn't mean that we will be able to as efficiently accelerate it.
So while it is appreciated that at some point, on equal general purpose hardware, ray tracing is more efficient that isn't the question. The question is What is that point (and how soon will we reach it) and does that carry over to the special purpose graphics hardware?
Sometimes I think he's right. While I can see the merits of high definition and DTS, I've also seen plenty of films that seem to rely entirely on CGI and pretty graphics but have a weak plot (and plenty of games too for that matter). I hope this isn't going to make the developers spend even more time making textures, models and scenes just because you can see them so clearly.
The kind of hardware needed to run raytracing really fast is well understood, and it doesn't really look like today's GPUs or like intel's CPUs, though even today you can get better results if you take advantage of the GPU as well. If ATI or nVidia doesn't come up with a hardware raytracing GPU someone else will. It's a pity that Intel doesn't seem to be interested in working on that angle.
Here's an article I've dug out of the Wayback machine and cleaned up, Raytracing vs Rasterization. Phillip Slusallek's home page is here, and you can follow that to SaarCOR and OpenRT. They built a prototype RPU (R for raytracing) that at 66 MHz was comparable in performance to a 2.6 GHz P4. The video is pretty impressive, considering how slow the hardware is.