81 Comments
- Junkyarddawg, on 10/12/2007, -3/+23I'm not sure you guys really get the importance of this... The Quake videos are proof-of-concept, they're not what's cool about this.
Raytracing is what's used to photorealistic graphics, like these:
http://www.mildlydiverting.com/interactivewriting/images/cgi_face.jpg
http://www.linuxgraphic.org/section3d/articles/raytracing/images/theiere.jpg
(Or The Lord of the Rings, or any other movie with CGI in it).
Admittedly quality like that is probably quite a ways off, our machines simply couldn't churn out stuff like that at acceptable framerates, but like he says raytracing is perfect for parallelization, meaning we might get a use for those upcoming processors with dozens of cores, and allows using more polygons with only a moderate performance hit. - haiduz, on 10/12/2007, -0/+12The most interesting part of the article was the reflections in water and he even brought up a screen shot of Far Cry with only the backgroound reflected in water.
Right now I play a lot of UT 2004 and the one complains about graphics I have isthe reflections in the water because they reflect the enviroment but never reflect the character model which make the very realistic water reflection seem very fake whenever your actually in the water (or puddle of water). I was very impressed by the very realistic reflection of the character model in the water screenshot because it showed that there was both water movement and a realistic reflection both the character and the enviroment and it looked sweet.
AS FOR PERFORMANCE, if you look at the bechmarks that he did for Q4 then he was getting a low frame rate even when he used a quad core processor. The main point is that the resolutionn that he used was 256 by 256, so were a long ways off before realistic water reflections at resolutions of 1280 by 1024 with out a major performance hit.
A prediction: when ray tracing becomes popular in gaming I think there will be a larger drive towards overclocking since performance would depend so much more on processor power. - mxcl, on 10/12/2007, -0/+12Eek. He's 26. I have 6 months to get that smart.
- Agret, on 10/12/2007, -4/+16Quake 4 Engine? Quake 4 runs on the Doom 3 engine....
- Worrok, on 10/12/2007, -0/+11Slight correction, HappyScrappy: "Cars" was raytraced, the first Pixar film to be so.
- rowanjl, on 10/12/2007, -0/+11He's right, they only used their special software for the mass shots of the armies. The closeups where real people.
- bluah, on 10/12/2007, -2/+13Hmmm, something Cell might be good for? (braces for digg down due to PS3 reference).
Hey, guess what - I found a source!
On implementing ray tracing on Cell vs. GPU "...which resulted in Cell out performing the Nvidia 7800 [GT OC] by a factor of 5 - 6x using only 7 SPEs for rendering."
http://gametomorrow.com/blog/index.php/2005/11/30/gpus-vs-cell/ - HappyScrappy, on 10/12/2007, -5/+14That first image probably wasn't raytraced. The 2nd very possibly is.
Most CGI movies are not raytraced. For example, the Pixar movies are not raytraced. They may raycast to get a few reflections and generate environment maps, but that's still not raytracing.
Raytracing doesn't antialias edges well. Scanline rendering is still the way to go. - imikedaman, on 10/12/2007, -0/+8Computers do ray tracing backwards - if you just shoot a ton of rays directly out from the light sources, you're not guaranteed that the rays will ever reach the camera for viewing. Shooting it from the camera guarantees that.
- 1021, on 10/12/2007, -0/+8This idea isn't new by an means. Real-time ray tracing will still have to wait till we have more powerful graphics/processor/data bus acceleration. Right now, if you tried to apply this to something that looked exactly like the Lord of the Rings movie, you'd get about 1 frame per minute.
- chris9902, on 10/12/2007, -0/+8I don't think he means Quake 4 has it's own engine.
- astrath, on 10/12/2007, -0/+7This is some really nice work, but it's definitely not a nice article. Actually it's quite badly researched/written. I hope he did a much better job in his master thesis.
- Nothing in the image he shows from LOTR to demonstrate the power of raytracing is raytraced or even CG.
- He shows a quite unimpressive screenshot from the good old FarCry and states that water in today's games only reflects the surroundings because they are bound by the limitations of scanline rendering.
Actually, even the original FarCry without any patches could reflect everything including objects, you just had to turn that on in a config file. Besides the screenshot shows the water shader from what's probably the worst possible position and angle. The water in FarCry has already been surpassed quite a bit by it's version for the Xbox 360 or titles being released in a few months like Crysis. There's nothing in his version of raytraced water he shows next which can't be rendered with today's GPU in exactly the same quality (and quite a few games do).
- He shows some soft shadows from Gothic3 and other games to demonstrate that today's games can't do artifact free shadows. Raytracing does.
The shadows he's doing are not soft. Which imo looks so much worse from an artistic standpoint and isn't even more realistic. The irony is that Quake 3 back in 1999 already had hard stencil shadows build in. You just have to turn them on in the console. They look exactly the same as in his raytraced screenshot.
- As someone already stated: most effects in todays films are not raytraced. Good old scanline rendering still dominates even in prerendered graphics.
Don't get me wrong. This guy has done some quite impressive work. He just should be a bit more precise and stick closer to the facts, maybe concentrate a bit more on the effects he has in his engine which are indeed best done with raytracing. - Carniphage, on 10/12/2007, -0/+7Ray tracing is a valid technique and all - but his images don't exactly look better.
The Lord of the Rings image is NOT ray-traced - it is a bunch of guys in make-up. Film-makers tend to avoid full-ray tracing, preferring more scaleable methods.
If you are going to spend 5000 polygons on a wall, it would be good if the polygons were not arranged in flat planes. - inactive, on 10/12/2007, -0/+7i don't know how to take seriously an article that begins with an error so blinding as to offer that LOTR image as ray tracing. There were plenty of rendered scenes in LOTR that used ray tracing... but that ain't one.
- jhub908, on 10/12/2007, -1/+8Excellent article. This is the type of content I'd like to see on Digg more often, new research with real world implications.
- Vigile, on 10/12/2007, -2/+8This is exactly the point here! This shows that something was not at all feasible years ago and this guy is making it a reality with some research.
- BladeMelbourne, on 10/12/2007, -4/+10I was a little disappointed too. Having never seen Quake 4, it would have been good to see the screenshots of raytraced frames next to the non-raytraced originals.
- gweedo767, on 10/12/2007, -0/+5@haiduz: actually when RT becomes more popular for gaming will be when ATI and Nvidia decide to add accelerated RT functions to their cards. At which point we will be right where we are now. Having a GPU doing most of the graphics work.
- donjaime, on 10/12/2007, -0/+5GPUs are NOT designed to be good for ray tracing. It is possible with modern programmable GPUs to hack out a GPU ray tracer, but it is a BITCH. Shaders have a fixed maximum size, and GPUs have ***** branching and loop support. You often need to bridge calculations over multiple passes and figure out some scheme of storing partial computations in the frame buffer. Its gross.
You could achieve multiple factors better performance implementing ray tracing on any new multi-core CPU. - BadgerOU, on 10/12/2007, -0/+5@noouch
I completely disagree with you. Ray tracing (when done right) looks *way* better than anything you could ever do right now with a game engine. Right it takes a lot more work (processor and programmer wise) for it to look right. However, if you want photo-realistic effects, ray tracing is the way to go. That, and to get effects like true ambient light and caustics you need to have a more sophisticated algorithm than what was described in this article. I would venture a guess that the ray tracing you're thinking of is old or done as an example my relatively low level students.
However, if you currently work for Dream Works (or some other place that actually uses state of the art ray tracing software), then by all means let me know I'm full of sh*&. - Vigile, on 10/12/2007, -0/+5That ray is coming from the "virtual camera" that is represented by the eye; the rays start from it in order to simulate exactly what the eye would perceive at that point.
- kethraal, on 10/12/2007, -2/+7Let's pretend it's 1997. Rumours are swirling about id's next game, and it's nearing E3...
On John Carmack:
"This guy has done "research" on a problem that has been solved for quite some time. Why do we go through to trouble of dealing with things like curved surfaces, skeletal animation, and stencil shadowing? Because this can't be done in real-time."
Except it can. And with a talented enough pioneer (and the interest of ATi and nVidia) it eventually _will_ be done in real-time.
If every developer had your attitude, then we'd never see any graphical improvements, because they can't be done in real time when they're first tried. - ebbv, on 10/12/2007, -3/+8I could be wrong but I'm pretty sure the close-up shots like that in LotR are the tride and true "Dude in makeup" technique of photorealism.
- Pigeon, on 10/12/2007, -1/+6There are valid reasons for making flat planes more than two triangles, lighting being the main one.
In GL/D3D colours are blended vertex to vertex to achieve smooth shading and colouring. If you have a four vertex wall (two triangles) then vertex lighting will look odd, beause even if only a portion of that wall is lit, the results are being blended between the vertexs right at the edges. With a two hundred vertex wall then it will light more correctly because there are more positions for the colours to be blended.
Of course, that isn't really an issue anymore with shaders and per pixel lighting. Although Q3 was using vertex lighting I think. - r3tex, on 10/12/2007, -1/+5and fun read ;)
- vertinox, on 10/12/2007, -0/+4@"I think people should work more on faster rasterization methods, using raytracing only when necessary"
That is like saying we should have made Doom work faster instead of trying Quake working at a decent speed.
Rasterization now is like the 2d sprites in a 3d world that we had 10 years ago when Quake came out with 3d rasterization. The goal now is to do ray tracing in real time.
- mookieXL, on 10/12/2007, -1/+5I think Pixar and other studios use selective raytracing (only reflective/transparent surfaces are raytraced, rest is using classic phong + shadow maps ).
@HappyScrappy, all modern raytracers support dispersion so aliasing is not problem. - ear1grey, on 10/12/2007, -0/+4as donjaime says - complexity - is key. when you fire a missile it becomes a lightsource, and an object that can be collided with. when something explodes into fragments, each of those fragments must be checked for collisions - and the explosion will no doubt be a particle system based light source, so the fire will look good - then if the fragments are reflective then the ray must continue, etc... the concept is lovely, and it will help keep nVidia et.al in clover for many years as they sell us (and re-sell us) the abililty to render a real ork, which has no convenient analog in reality. there comes a point where you have to take a breather and realise that when graphical utopia is reached, gameplay is still the killer difference, graphics are good enough today, gameplay, musculo-skeletal models, (pseudo) ai and haptic devices are what's going to make more of a difference over the next 20 years of gaming.
- The_Decryptor, on 10/12/2007, -2/+5Yeah, it's stuff like this the Cell, excels at.
- RichGC, on 10/12/2007, -0/+3Certainly found it interesting, ive often thought able how far away we are from being able to use ray tracing for real time games.
I wonder out of the future possibilities whether it will be:
- Ray tracing addon cards
- Physics cards that can do ray tracing
- Regular graphics cards with ray tracing enhancement
- Multicore CPU's doing all the ray tracing - sunburnt, on 10/12/2007, -1/+4@haiduz
Your prediction may turn out to be right, but another alternative is for ray tracing routine to be moved to the GPU. Currently GPUs on 3D accelerator cards optimized for rasterization operations. If games start adopting real-time ray tracing for their engines, GPU makers may add ray tracing into their GPUs just like they did with rasterization when 3D became the norm in games.
More info:
http://en.wikipedia.org/wiki/Rasterization
http://en.wikipedia.org/wiki/Ray_tracing_hardware - BadgerOU, on 10/12/2007, -0/+3@Artemenko
You're correct in that the rays don't come from the eye -- rather the eye collects the light rays from the environment. However, ray tracing algorithms actually simulate the physics backwards, by shooting rays from the eye to see what the eye can see. The reason for this is that if you were to shoot rays from the lights in the scene out in all directions, most of those light rays would never hit the eye (or camera). Therefore, most of the computations contribute absolutely *nothing* to the way the scene is actually rendered, and you would need to shoot *WAY* more rays in order to find the "important" rays that actually reach the eye.
There are actually a lot of approximations and shortcuts ray tracing algorithms make to turn this from an intractable problem into something that we can actually use. It's is tres interesting - BadgerOU, on 10/12/2007, -0/+3To those that are talking about how ray-tracing doesn't anti-alias or make soft shadows well, that's not completely true. It's probably true that this guy's proof of concept didn't do it that well, but anti-aliasing and soft-shadow techniques exist and are used for ray tracing.
http://scholar.google.com/url?sa=U&q=http://portal.acm.org/citation.cfm%3Fid%3D808589
http://www.amazon.com/efficient-anti-aliasing-Technical-University-Information/dp/B0007BI10S
http://scholar.google.com/url?sa=U&q=http://portal.acm.org/citation.cfm%3Fid%3D808589
Comments about these articles:
The first article was published in 1984, so obviously anti aliasing using ray tracing is a well understood problem (even if running it at real time isn't possible yet).
For the second, I was really impressed that one of the first google hits for a technical article was through Amazon.com.
The third article talks about distributed ray tracing which does NOT refer to distributed (or parallel) processing. Rather it's a way to compute effects like anti-aliasing and soft shadows. - BadgerOU, on 10/12/2007, -1/+4AMEN BROTHER!!! PREACH IT!
- samadam, on 10/12/2007, -0/+3@ gregory:
that is why he said: "frame per MINUTE" - ammoniaslip, on 10/12/2007, -0/+3Anyone interested in realtime raytracing might want to check out enRay:
http://users.ntua.gr/el01157/enray.html - kethraal, on 10/12/2007, -0/+3"The guy doing the writing should really play up-to-date games (patches) before trying to make them look bad for the lack of features that they actually have if he'd bothered to download the current patches."
His point about visual realism still stands, regardless of what patch he had. FarCry is an amazing feat of raster rendering -- yet even though it's considered to have some of the best light effects out there, it pales in comparison to early raytracing research. _That_ was his point. - LuxFX, on 10/12/2007, -0/+3This is interesting, but I just don't think there's any place for this in mainstream games right now. It's just not scalable enough. Consumers are used to game sequels being dramatically more advanced than their predecessors, and they only have to spend a couple hundreds dollars on a new video card every now and then. Improving raytracing graphics means a bigger processor and more RAM, something that's more expensive and difficult to do. And there's only so far you can go. For instance, even with all the horsepower they could throw at it, the average framerate that Pixar was getting for Cars was one frame every 14 hours of computer time.
- BadgerOU, on 10/12/2007, -0/+3@Peeps
This could be real time in just a few years. A GPU that's only 3x more powerful than what's being used right now? That will be here before we know it. A CPU that runs at 36 GHz? Can't really get there now .... but one that runs 10x faster (performance wise) than what Intel has right now could be here in 5-10 years. Or maybe by then, everyone will have dozens of cpus in their desktop computer, and we'll be able to put this into a game.
You're right that this is the academic view of real-time. As in, we'll be able to do this soon. If this guy (or rather, people like him) didn't do research like this, then 2-10 years from now, we won't be able to use these techniques in a real-time system (ie video games). A company can't usually afford to look that far ahead if the technology/method won't pay off (which, it may not, see donjaime's comment above), which is why we need academic research like this to explore these avenues before a company sinks big money into it. - noorman, on 10/12/2007, -3/+6Nice pictures !
- haiduz, on 10/12/2007, -0/+3I remember that when ATI and AMD merged there was a lot of talk about how the next generation of CPU architecture would intergrate a lot of the GPU and CPU cababilities into a single processor and that AMD was in desperate need of inhouse GPU expentise to compete with INTEL who were developing such technology.
Perhaps this intergration will have huge implications on ray tracing, but i do not discount the idea that ray tracing functionality will be added to GPU.
THe university which is mentioned in the atricle in developing an RPU, a Ray Processing Unit.
http://en.wikipedia.org/wiki/Ray_Processing_Unit
One day someone's computer may have a CPU with a lot of the GPU capabilities, a GPU, an RPU, as well as a physics card all in one case. BUt then again, with all the heat generated inside the case by all those card, maybe poeple will be less prone to overclocking. - kernelhappy, on 10/12/2007, -0/+3Multiple polys for a flat surface only improve lighting for shader engines since I believe newer rendering engines use mappings to make sure that a poly does not have a single intensity. Ray tracing engines evaluate each pixel as a ray of light and for every time it intersects with a surface the attributes of the surface and the geometry directly influence how it's rendered.
A good rational for 5,000 polys on a flat surface would be for deformation. If you have a flat surface made of two polys and you wanted to pit it from gunfire, using current rendering engines you'd have to change the displacement map for the surface to give it 3D damage. With a flat surface made of 5,000 polys you can deform the model itself. - kernelhappy, on 10/12/2007, -0/+3We've already seen applications like folding@home begin to use GPUs for something other than game rendering and the introduction of physics accelerators appears to me as a sign that even though CPUs are getting faster peripheral processors are not going to go away. The hardware GPU market is simply too lucrative for it to slip quietly into the night, but it will change.
Even though CPUs are approaching the ability to do ray tracing themselves I'm sure that a GPU designed for the task could be even more efficient. The only thing that's preventing a massive push to get real time ray tracing into the mainstream is the ingenuity of hardware and software developers working on the current rendering engines. There will come a point where new tricks for mapping textures and reflections will begin to yield diminishing returns and the only way to significantly improve image quality will be to shift to ray trace based engines. It's at this point that I feel we'll see the big players start to move toward RayT accelerators.
My guess is that real time ray tracing is 5-6 years away. - vagarach, on 10/12/2007, -0/+2Yeah, back in the day of the GPU being a new thing, one guy wrote his thesis on GPU-based raytracing. And he wrote his own, of course.
- donjaime, on 10/12/2007, -1/+3The problem with ray tracing is the fact that it increases exponentially in complexity with each ray cast and with each additional reflection. CPU power increases simply can't keep up.
- tungsai, on 10/12/2007, -1/+3@UPSLynx
>Ray Tracing really is the future for advanced photo-real graphics.
I agree, the inevitable future is all raytracing.
>Is it a long ways off? You betcha.
"Long ways"? 5-10 years is my guess.... not long at all! - jldugger, on 11/12/2007, -0/+2The thing is, ray tracing is a technique. It doesn't put information that wasn't there already in. So when you see q3 running, that's the source material. As mentioned in the article, ray tracing scales much better with the number of polygons. Traditionally, ray tracers don't use textures, but rather pump the polygon count up to where you have so many triangles that just giving each one a color and some pixel shader logic, you can make a nice looking orc as in the first picture.
If you know what to look for, even the q3 screenshots and videos can be impressive. As the article mentions, shadows in games really suck. With good reason. The approach in traditional games like Battlefield 2 is to use a stencil buffer to rotate the object casting the shadow with respect to the light and render onto the ground texture. Except, your ground texture is only so big and covers a huge polygon, so the edges wind up looking bumpy. With ray tracing, you get pixel perfect lighting almost for free. Look at the videos and you'll see what I mean: the shadows are much better than usual. That quad damage room is looking really nice. But what's most important here is that last page: performance & conclusion. GPUs don't handle ray tracing very much. But General Purpose CPUs, while not fantastic, are going to ramp up much faster in the future. Unlike traditional rendering methods, ray tracing can actually put those multi-core chips to work. The downside is a) GPUs do a heck of a job at what they're designed for, and b) there is no John Carmack of RT RayTracing (yet). Current implementations, while impressive, are mostly academic. Few, if any, of my academic colleagues are capable of optimizing code for a PC, or identifying bottlenecks. This makes it hard to identify which parts of the sluggish performance is due to algorithmic complexity, and which is due to crappy programming and compilers.
Finally, I find it very sad that this work is not planned to become open source. Especially when Carmack has released source to something that performs at better framerates in software, not releasing the source to the RT version seems in very poor form. - vrillusions, on 10/12/2007, -0/+2That was what impressed me about this. Not that he could make q3 look better, or add some uber reflections to water, but that this can all be done by multiple processors. For years, game developers have pretty much admitted getting a multiprocessor cpu has little to no effect in games. Because of how rasterization works, you can't really split things off into multiple threads. If any doubt, watch the cpu usage on a multiprocessor computer while playing a game.
The rate that cpu speeds increase have gone down considerably lately. Instead of trying to make chips go faster, cpu manufacturers just add an extra core, have motherboard manufacturers make more dual cpu motherboards for consumers, and have their PR execs hype up multiple processors with their "having two 3ghz cpus is like having a single 6ghz cpu!!!11!one" (note: I don't recall hearing any company saying something like that, but it wouldn't surprise me). - dswartze, on 10/12/2007, -0/+2It wasn't addressed at all in the article, and no one has mentioned it here yet, but there's some other advantages to ray tracing that I find incredibly valuable.
In normal rasterization techniques how many polygons does it take to make a good looking sphere? All you need to know to make one in ray tracing is that x^2+y^2+z^2=1 describes a sphere. Extremely complicated models the way we do things now can be created almost trivially with a ray tracing approach and look far better with less work, and this is true for anything that has a shape that can be described mathematically. -
Show 51 - 80 of 80 discussions



What is Digg?
Browsing Digg on your phone just got easier with our enhancements to the