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.
I want whatever computer they're using to test this.
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.
If you read the article on slashdot properly; it tells you that ;)
Ripping an new rectum in the fabric of spacetime.
Freecache link. This should hopefully be faster. Anyone have a torrent?
Somebody didn't notice the frameset...
Screen Shots
Downloads (video)
09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
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
Why would they need FSAA on if it's ray traced?
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
Can someone please dumb this down for us, well... dummies?
Dammit, don't give Carmack any ideas! I'll barely be able to run Doom 3!
pulling down at about 200kb/s
Imagine what you could do with a beowulf cluster of these things... oh wait... nevermind.
It seems my question is already answered.
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.
That video is one of the most impressive things I've seen (as related to PC video/games). The scene that looks like a night club is astounding, and the scenes with the mirrors are extremely cool.
I can't wait to see this technology in production.
Don't think that a small group of dedicated individuals can't change the world. It's the only thing that ever has.
ed2k link (It sucks that Slashcode is broken WRT ed2k direct links.)
May we never see th
It's a okay as a technology demo, but it's ugly and what's more it's terrible coding for a raytracing engine.
They have used point sources, presumably to cut down on the ray-tracing required and show obviously ray-traced lighting, but it's the wrong sort of lighting...
Most of the light sources in Quake 3 are not point sources, but would in fact be slightly diffuse and should be rendered as such. You only get shadows like that from a very bright light far away. nearby light sources produce diffuse shadows - for example my lightbulb at 4 metres produces noticably diffuse shadow edges.
Using point sources on obviously diffuse light sources may give crisp, clear shadows, and a faster render speed, but it makes the raytrace less realistic and less impressive than the original.
If they wanted to show off their real-time raytracing using point-sorces they should have designed some levels that matched the ray tracing to the visible lightsource.
--
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
They're hosting screengrabs and a big video file, and the site's still holding up? Well now we all know what they did with all those machines they used for the demo!
"Derp de derp."
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
... can be found here.
-- Contradictions only exist in thought - not in reality.
I guess I'll start saving for that alienware system after all..
1) Your analysis is based on bad assumptions so your result is way off. 2) You're a sick bastard for fucking a horse.
The only reason I can think of them consciously doing this is to up the speed numbers, since 30GHz is in our minds not as impressive as 36Ghz, despite the fact we all know AMD is faster per MHz than intel.
click-clack, front and back. I'm not moving this car otherwise.
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...
You were probably one of those masochistic bastards that installed Windows 95 on a 4MB 386SX, weren't you?
many games already do this for realistic lighting on the static scene.
For example:
Quake (1, 2 and 3)
THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
to compute global illumination levels ahead of time (as opposed to using ambience). Then you can use raytracing in realtime to capture dynamic effects.
THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
are provided by a straight raytracer (soft shadows, color bleeding, etc.)
Because when a ray hits a surface, it only spawns a reflection ray and rays to any (point) light sources. Therefore shadows will have sharp edges, either a particular light at a particular point is visible or it is not.
Moreover, the contribution of non-light sources to a surfaces' illumination is not modeled (light from OTHER surfaces).
To accomplish this, once must create a large number of trial rays in a pattern around the reflection normal that roughly model the diffuse-ness of the surface in question. These can then "view" other nearby surfaces and pass on their illumination. Soft shadows can be achieved in this manner, by having rays intersect light sources which have volume, like real lights would.
But this sort of technique is much, much slower.
THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
This looks worse than the original engine. I've played Q3 since it came out, and those screenshots are crappy compared to what the game really looks like... So big deal, someone used tons of processors and some good coding to create graphics that look worse than the original, for a few thousand times the CPU and $$ cost! Sometimes I wonder why people get excited over this stuff.
As no-one else has mentioned it I'll be the first to point out that if you want to try raytracing for free on just about any platform you'll want POVRAY.
Input error. Replace user and press any key to continue.
Feel free to mod me as redundant, but I'm sick of all the incorrect assumptions regarding rendering.
Raytracing overview. (a simple implementation)
Raytracing involves the casting of rays from the camera's eye, through a pixel in the screen. For each object in the scene (assuming no partitioning optimizations) we calculate whether the ray intersects the object. If it does, we determine the distance from the 'screen' to that object (consider it the Z depth) and save this for later. Once we have checked every object we find the object with the shortest distance (Z depth) and we caluclate the color of the pixel at that point.
To do this we get all the light source in the scene, and we cast a ray from the point on the object to each light source (assume point lights for now). We then determine if any objects intersect the ray. If there is a intersection then the point on the object is in shadow (at least partially, we won't handle translucent objects for shadows) so there is no light reaching the object from that light source. If there is no intersection, we calculate the color based on the material of the object (ka, kd, kn, ks), the angle of the camera to the points normal and the angle of the light source to the points normal as well as any reflected/refracted components.
The reflected/refracted components are where the coolness of raytracing is found. If the object has reflective properties, we cast a ray from the point on the object along at the angle determined by the original rays angle of insidence to the normal. We then use the same logic as the ray from the camera to determine what object it intersetcts with and the color of that point on the object. This is the recursive nature of a raytracing. This color value is then incorporated into the caluclation of the original point's color based on its 'reflectivity'. The same is done for refraction except that the ray is determined based on the refractive index of the object and snells law.
This is the extreme basics of raytracing. There are many subtilties that I have glossed over as well as many optimizations that can be done. For further enhancements there are better light models (spot lights, box lights, area lights, etc), distributed raytracing (which provides many features such as soft shadows, depth of field, motion blur, hazy reflections/refractions, antialiasing) and many others.
--
I actually did sit down to patch Slashcode after you pointed it out, but Slashcode apparently requires blowing away FC2's Apache and mod_perl installation, which I'm just not willing to do.
May we never see th