Quake III Gets Real Time Ray-Tracing Treatment
Ozh writes "Did you ever wonder what you could do with a cluster of 20 AMD XP 1800s? Some German students and videogame fans did, and their answer has been what they call 'ray-tracing egoshooters', an entirely raytraced game engine which 'runs about 20 fps@36 GHz in 512x512 with 4xFSAA'. The first game to get this treatment is Quake 3 Arena : the screenshots look slightly better than the original 3D engine but the video (56 Mb, 3'19) is quite dramatic."
Its a bit hard to tell from the page whether this makes full use of the GPUs per box in the cluster like Chromium
They do also mention that it can render entirely in software over the network at 20FPS - not bad considering that each fram portion of the data has to pass across presumable 2 machines before it is passed to the display!
Ripping an new rectum in the fabric of spacetime.
That's pretty nice. Unfortunately most of the effect can be simulated using tricks and still run on a regular computer. Especially with all the stuff you can do on the GPU now.
They need to soften the shadows also. Either by using tricks or radiosity. Right now it looks kinda meh...
Interesting effort though.
Freecache link. This should hopefully be faster. Anyone have a torrent?
So my question is, for those of us who don't know the first thing about 3D graphics, what are the pros and cons of a raytracing GPU, compared to the polygon pushers we currently know and love.
Sticking feathers up your butt does not make you a chicken - Tyler Durden
Man, I can't believe they didn't used radiosity to render those images. Yes, I know it takes a lot more of CPU power, but I would surely steal other people computers just to play Quake that way :)
Great so now I have to lug 20 pc's to a LAN party to get a decent frame rate?
And I was just thinking about my next upgrade for HL2/Doom3.
Imagine a cluster... oh wait.. um, so is it running linux? and where is the source code?
09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
According to Moore's law, we should get this power in our desktops in about 4 and a half years from now.
_______
2B1ASK1
Dammit, don't give Carmack any ideas! I'll barely be able to run Doom 3!
Because raytracing point-samples the scene, so just like polygon rendering you'll get jaggies all around your objects if you don't antialias.
And they did this for every pixel on each scene, 20 times per second.
It's a slow technique but it gives good results. They managed to do this fast by using hardware and 20 computers all running in parallel and transfering the results over the network in realtime; 20 times per second.
Previously used techniques to draw the graphics for Quake III involve drawing little perspective adjusted triangles on the screen; with stuck-on texturing and they use some clever techniques to approximate lighting and shadow; but these techniques generally aren't as good as ray tracing; but they are easy to design graphics cards to do quickly.
-WolfWithoutAClause
"Gravity is only a theory, not a fact!"Someone put a lot of computers together to make a powerful distributed system that is capable of rendering Quake using ray-tracing.
Here is an example of a (not real time) raytraced image (one that doesn't use radiosity -- just straight raytracing). In theory, given enough CPU power, they could pull this off.
Ray-tracing uses a method of 3d rendering that is currently beyond dedicated 3d hardware and must be done in software.
The main benefits of ray-tracing from a quality perspective are:
* True, accurate shadows from *everything* (most games, even stuff like Neverwinter Nights have hackish shadow engines that don't realistically display what lighting would look like in real life. These are calculated in real-time, not the precalculated shadows that you'll see in, say, Quake, where the light sources never move. You could throw a flickering lantern across a bar with bottles falling down and have all the bottles cast their own shadows.
* Advanced lighting. Currently, real-time 3d engines are very limited in the types of light they can produce -- generally, only spherical point sources of light.
* Refraction. You can have glass, ooze, or water truly refract light and distort images, not just use some sorta-lame effect to vaguely approximate it. Think of looking through a glass lens or a window in an old house.
* Volumetric fog (where you have "clumps" or "clouds" of fog, rather than just a global constant flag fog covering everything). Quake 3 had some rather (IMHO) impressive hacks to emulate volumetric fog -- ray tracing allows *true* volumetric fog -- people vanishing in swirling clouds of fog and mist and the like, not just a straight visibility dropoff.
* Reflections (there are a lot of hacks to approximate this off with existing 3d engines), but raytracers are *made* for this sort of thing.
* True curved and arbitrarily-shaped surfaces.
* Light projections (with shadowing and all that). They show a bit of this in the demo -- you could have, say, two people having a swordfight in a theater and the picture washing over them, or a scene in a church, with dusty light from the stained glass windows washing over the characters.
Basic ray-tracing does have some flaws. The shadows are sharp and hard -- sharper and harder than in real life. There are hacks to do soft shadows, but there isn't a particularly good an efficient way to pull them off.
It's hard to deal with things like laser beams or light beams coming out of a prism in ray-tracing. You need to do forward raytracing/photon mapping for this, which I suspect that they aren't doing.
Ray tracers tend to look a bit "eerie", for lack of a better word. They tend to leave shadowed areas very dark -- in real life, light will bounce around in corners and things a bit (even surfaces that don't look "reflective" to us will do so). So if I shine a flashlight, a raytracer will show a perfectly accurate cone of light (unlike existing 3d engines) that will spill properly over all surfaces. However, that cone of light will be a *cone* -- normally, when I shine a flashlight in a room, it lights up the entire side to some degree because of light bouncing off of objects.
There are some really nice things about ray tracers. They tend to parallelize really well, so you can theoretically put lots of computers together to do renders (as these folks did), or have lots of chips in parallel to theoretically make a custom piece of hardware.
May we never see th
Is it just me, or did that look much worse than standard Q3?
Q3 isn't designed, let alone optimized, for raytracing, so that's not a major surprise, but I still expected an improvement, not a downgrade.
I think a custom demo is called for.
The tech sure is hella cool, though.
ed2k link (It sucks that Slashcode is broken WRT ed2k direct links.)
May we never see th
Ray tracers tend to look a bit "eerie", for lack of a better word. They tend to leave shadowed areas very dark -- in real life, light will bounce around in corners and things a bit
That's what radiosity is for. Now a realtime radiosity package would be tres amazing.
Submit a patch or a feature request. You're capable enough from what I've read. If no one posts even a requests in such a forum, there's no way to reasonably expect the code to get changed.
You like splinters in your crotch? -Jon Caldara
And some people 10 years ago thought that ray traced games were going to be on LAST generation CONSOLES.
Heres a mirror of the movie.3 rt.avi
http://mirror.openbarr.com/20040509_egoshooters_q
"The road from legitimate suspicion to rampant paranoia is very much shorter than we think." - Picard
You didn't look at the downloads page:
> This is realtime speed for a virtual intel CPU with about 36 GHz (to be more precise: a cluster with 20 AMD XP1800 was used).
... can be found here.
-- Contradictions only exist in thought - not in reality.
Okay i know raytracing provides far more realistic visual representations of a 3D modelled scene than actual scanline polygon rendering. But - and here comes the but - i miss a lot of things in this raytraced Quake movie. All the shadows are really really crisps, one would expect that when light bounces off walls and objects a few times its reflected light would soften those crisps shadows. E.g. it would result in softened gradual shadows.
;) )
I guess they limited the path of the ray they calculated so it bounced only two or three times off an object before they stopped calculating it. (If they stopped after one pass you wouldn't have seen those reflective glass balls like you did, which need multiple passes to look like they do).
I also miss colour bleeding on the surfaces. E.g. when you have - let's say - a white surface next to a red surface, some of the red will bleed on the white because light coming from the red surface will fall on the white surface and light it in a red hue. You would have seen this with a proper raytracing engine where the light bounces multiple times from an object and where the colour of the light is affected by the colour of the object.
I think those are the main reasons why the video doesn't look as realistic as i hoped for. (Then again how realistic is walking through a building where they have decorated the place with gruesome wallpaper taken from a horror movie and gigantic brains on mechanic spider legs walk around...
No, photon mapping is different from monte carlo ray tracing.
Photon mapping basically is tracing light particles from the light source over multiple bounces (for indirect illumination). The resulting hit points and other light data are then stored in a structure and used later on for lighting.
Path tracing in a way is like normal ray tracing, but you spawn new rays even for all kinds of reflection (that is *lots* of rays, which is why it's damn slow) and calculate the resulting color by weighting and adding the results of all the rays (recursively).
Essentially both "solve" an integral formulation for lighting known as the rendering equation, but in different ways.