87 Comments
- darkstar949, on 10/12/2007, -0/+29You may or may not be aware, but those are all extensions of the basic ray-tracing algorithm. If and when computers can do real-time ray-tracing they will likely include those algorithms as well.
- blackmariah, on 10/12/2007, -1/+25F it all, I'm going outside.
- phlux, on 10/12/2007, -1/+16agreed - that whole article could have been said in 2 paragraphs.
The author is full of himself. Quoting himself mid article twice and plopping his lame picture in the middle.
but he hints at how worthless he is in the article when he says "tom focuses on hardware, some other guy on technology, I just sit around with my thumb up my ass and fill any article I write with lame ass fluff totally unrelated to the topic to meet my editorial word count quota"
No Digg on this lamer. - Kazrog, on 10/12/2007, -2/+15Agree with Cheney. I was doing raytracing on my Amiga 3000. :)
- Dejvino, on 10/12/2007, -1/+11I must say I was waiting for this moment from the first time I tried POV-Ray (which was in previous century actually... :)
So this means I'll have to throw away my graphics card and buy something with RPU...oh well... :) - inactive, on 10/12/2007, -5/+15http://en.wikipedia.org/wiki/Raytracing
- CurtHowland, on 10/12/2007, -2/+12One more "update" to add to my list of "things for my multi-core 64bit Linux Box" that I will never be able to afford.
- yeehawjared, on 10/12/2007, -2/+10check out this screen shot of a ray traced Boeing 747: warning: HUGE IMAGE
http://graphics.cs.uni-sb.de/Publications/2004/BoeingCover/BoeingCover.png - bmdhacks, on 10/12/2007, -0/+8Just to add to the clarifications here.
Raytracing is the algorithm used in most 3D computer generated stills, and is considered one of the most photorealistic methods of 3D rendering. There are a number of raytracing packages such as Povray for creating 3D images and animations, and the technology has been around for decades.
This article is about realtime raytracing. The idea here is that realtime raytraced video games will be exceedingly more realistic than existing games that use many other lower-cost algorithms.
For some nice screenshots of what a raytraced image can look like, check out the Internet Ray Tracing Competition: http://www.irtc.org/ - DjDimitrious, on 10/12/2007, -1/+7F Everything. Give me virtual reality.
- kyriakos, on 10/12/2007, -0/+5I remember waiting 16 hours for an 800x600 raytrace using POV ages ago.. imagine if they manage that in realtime how much processing power has increased over the past 10 years
- Pookeyhead, on 10/12/2007, -5/+10Great article: Good basic raytracing theory for those new to the term, and an exciting, amusing glimpse into the "not too distant future".
- NikoKun, on 10/12/2007, -3/+8ah yes, good old POV-Ray! I should start using that more often again...
- bigz, on 10/12/2007, -2/+7@CHENEYTHEDICK
My bad, late night/early morning. Digging with very little sleep does wonders to my ability to put a paragraph together. :-) - Boojum, on 10/12/2007, -0/+5Hey there. Researcher in the RTRT field here.
To answer your question, yes, eventually, you'd probably be using AA and AF again, but most real-time ray tracers don't yet because it's fairly expensive to compute and we're mainly going for raw speed at this point. OrangeTide was correct in that they are orthogonal to ray tracing.
AA can generally be done in one of two ways in ray tracing: simply shoot more samples per pixel (and ideally use a decent reconstruction filter -- preferably not a box filter!) and/or compute what are called "ray differentials" and use those to estimate the rays footprint when doing texture mapping. The ray differentials give you the information you need to be able to do proper texture filtering with a mipmap or summed area map, etc.
Texture filtering like that though tends to be conservative in AA and so overdoes the filtering which leads to blurry looking image. AF is a method of trying to be a little smarter about to reduce the blurring. But it's just an extension to the texture filtering method of AA.
So, two methods. Super-sampling can never completely anti-alias an image -- even with more rays, you may still miss stuff. But it will at least partly anti-alias really fine (sub-pixel) geometric detail. Texture filtering can completely anti-alias the textures on a surface, but it does nothing to help with aliasing due to fine geometry. Both techniques can be used together (they're orthogonal), but the performance penalty will be even higher since you'll be not just shooting more samples or filtering, but having to filter more samples.
No real-time ray tracer that I'm aware of filters textures, though a couple can optionally super-sample with a box filter.
Oh, and OrangeTide: global illumination is optional in RT. Without, RT images tend to look a lot like GPU images. And you can also pre-compute the global illumination solution with RT and then render it with a GPU. - merreborn, on 10/12/2007, -0/+5It left me wondering: what are the limitations? Are nvidia and ATI actually working on hardware to do this? Why haven't they already done this?
Anyone have any idea what's actually happening on this front in the real world? - kasurila, on 10/12/2007, -1/+6The problem with radiosity is that the algorithm doesn't parallellize that well (you have to do one pass at a time). Photon based GI should scale well though. Real DOF is unreasonably heavy to calculate and the effect isn't that different from a good 2d fake in most cases.
- Chewie67, on 10/12/2007, -0/+4Pov-Ray rocks. I've used it for over a decade. Excellent
http://www.povray.org/ - shadowman99, on 10/12/2007, -0/+4F real-time photon-based Global Illumination with true depth-of-field. Give me Real Time Ambient Occlusion with true DOF on a stereoscopic display.
- Lacero, on 10/12/2007, -9/+13F raytracing. Give me real-time radiosity.
- Boojum, on 10/12/2007, -0/+4Ray tracing doesn't have to be an exponential problem. You can flatten the ray tree by approaching it stochastically as a Markovian walk. Path tracers have been doing this for years, though the scintillation from the variance when animated would be annoying.
But I agree that 450M r/s is a little low. That leaves 11.4 rays per pixels per frame at 1280x1024 at 30fps. Not a whole lot. You'd only get maybe a little anti-aliasing, one bounce of reflection/refraction and a single hard-shadowed point light with standard Whitted-style ray tracing. - MyLogin, on 10/12/2007, -0/+3747s have four engines and quite a bit different fuselage--this is definitely not a 747.
Also, while I like seeing pics as much as anyone else, why would this pic be an especially good one to demonstrate raytracing? It has obvious problems with the geometry (i.e. the port aileron appears detached and there is something screwed up at the nose) and the an inapproprate texture is used on the model. - BugMeNot2, on 10/12/2007, -0/+3http://www.openrt.de/
Demos:
http://www.openrt.de/gallery.php - corser, on 10/12/2007, -0/+2You don't technically need polygons in ray tracing. Any function where you can determine the intersection point between the ray and the surface can be used (to various degrees of efficiency ) You can use the analytical function for a sphere instead of a tessellated approximation to the sphere, or you can ray trace a Bezier surface directly. Ray tracing has access to many more primitives than traditional 3d graphics. The memory requirements are much lower for these types of surface than the tessellated versions of them.
- lowerlogic, on 10/12/2007, -0/+2I wonder where Linux will be in this inevitable real time raytracing revolution for gaming. Lots of questions come to mind on what the impact of this will be:
Will ATI and NVIDIA fully support linux with the new hardware to be designed for ultra fast raytracing?
Will Microsoft try to force real time ray tracing to be strictly DX10?
Will all the fancy effects in GL and DX be useless in the new framework for raytracing as raytracing will to all the shadows, reflection, refraction, etc?
Will visual effects be able to improve after real-time raytracing is standard?
Since all the fancy stuff like shadows, reflection, and refraction is natural for raytracing, instead of a competition for the best rastering methods and algorithms (OpenGL and DirectX), will there now only be a hardware competition for video cards? - kypen, on 10/12/2007, -0/+2I have a question: Would this eliminate the 'need' (really, usefulness) of AA and AF? Would they be used in conjunction with Raytracing? I don't pretend to know a lot about RT...
- sandwichpants, on 10/12/2007, -0/+2I don't see how raytracing needs to make a comeback as most of the light transfer and ambient occlusion and so many other techniques that have come into almost all major special effects work (even if it is baked in or done as separate passes to cut down on the tremendous memory problems that can occur with large datasets and raytracing). Basically, you're seeing ray tracing in one form or another darn near everywhere these days. I know I couldn't do my job without it (lighting cars for advertisements in a "photoreal" style with techniques that mimic actual vehicle photographers).
- epatel, on 10/12/2007, -0/+2How about a silicon raytracer? http://www.artvps.com/
- bitrot, on 10/12/2007, -0/+2Previous century = 20th Century (1901-2000)
Current century = 21st Century (2001-2100)
It's entirely possible that he first used POV-Ray in the previous century, as did I. - Clearz, on 10/12/2007, -1/+3I remember waiting about 3 days to create one scene with one object a checkboard floor and 3 lights on my Amiga 500 using Imagine 2. Them where the days.
- OrangeTide, on 10/12/2007, -0/+2They are orthogonal. You can have ray-tracing with aliasing artifacts, if you really want (looks ugly). AF is not as useful because you generally don't need to mipmap textures in ray-tracing, but real-time ray-tracing might take advantage of mip mapping and therefor may need AF.
really the different between RT and "normal" 3D is RT uses a global illumination model. Without global illumination ray tracing is not much different than ray casting. Your fancy high-end graphics card only does local illumination (it has fragment shaders, this should give you a clue)
with local illumination you have to do a lot of tweaking and hacks to make a scene match up and look nice. Shadows can be a fair bit of hackery to get the appearance correct. there are no real light reflections (only simulated ones) so you have to use ambient light, which doesn't look realistic unless you apply light maps on top of it. GPUs are amazing, but they are optimized for pushing pixels, not for simulating light physics.
with global illumination you need almost no artistic skill to render an extremely realistic scene. you could place a ball on a flat surface textured with a tilable tennis court setup a light source or two and let the natural reflections and everything else take care of them selves. using realistic lighting models yields realistic results with little human effort (but a great deal of computational effort). - buckrogers1965, on 10/12/2007, -0/+2I have seen ray tracing algorithms loaded into the render pipelines of todays 3d graphic cards.
http://graphics.stanford.edu/papers/rtongfx/
I've also seen really cool audio processing being done in those same render pipelines.
The only strange thing about using these pipelines to process things other than vertex data still has to have data formated in vertex formats, which makes things a little confusing.
I really think that the future of computers is going to be processing streams of data through reprogrammable functional units whose inputs and outputs can be rewired on the fly to allow arbitrary processing.
The cell processor is basically where all CPU's are headed in the future. Once programmers figure out how to use these cores then we will see some amazing things coming out.
To program a game set up a core as AI, a core for physics, a core for modeling, and the rest of the cores to ray trace the output. There will be libraries for these functions that hide the details and extend themselves to support the number of available underlying cell processors. Basically just describe the kind of game you want, and let the library render it in as high a detail and frame rate as the hardware will support. This might even support having old games run with more detail and better graphics as the hardware improves.
The number of cores in these chips will double at the same rate that MHz had doubled over the years. Clock speeds will also continue to slowly increase in the future. It's a whole new ball game. - inactive, on 10/12/2007, -0/+2This guy writes articles like he's stuffing a turkey with words.
The article could have been summed up in three paragraphs or less.
By the end of the article I wanted to strangle that damn rabbit. - HappyScrappy, on 10/12/2007, -0/+2If someone raytraced that, they sure wasted their time. It contains no features that couldn't be rendered a zillion times faster with scanline rasterization. That model uses flat shaded polygons. Flat shaded polygons rander very quickly with scanline rasterization, but don't actually save you any appreciable time over more complex shadings when raytracing.
- Odwalla, on 10/12/2007, -0/+2You do realize that Raytracing still requires polygons and textures, right? It's not an entirely new paradigm. It's just a different lighting, reflection, refraction, etc.. model. You can implement raytracing as a fairly simple pixel/vertex shader.
- HappyScrappy, on 10/12/2007, -0/+2It's O(N!) because you have to trace each ray until it reaches a light source or an object with no reflectivity. The ray could potentially hit every object in the scene before doing so. If it hits a partially reflective surface, it might even split and hit each object in the scene more than once. Yes, you might be able to use space division techniques (like octrees) to not have to search the ray against every object, but once the ray hits an object, it reflects off at a new angle and you have to clear your octrees and start searching again.
Hence, it is O(N!), since you can hit every object, even more than once. In practice, you never do, but big O notation is about the general case, not specific cases.
Cars doesn't use any raytracing, they use Renderman and only use scanline rasterization. Some of the objects have texture maps applied to them that approximate a view (reflection) of the world from their own location. This can require rendering the entire scene from the viewpoint of the object, which definitely increases the computational complexity of the scanline rasterization. In extreme cases, it can approach the complexity of raytracing the scene. But it still has massive advantages over raytracing, most notable the ability to use advanced texture antialiasing techniques that are difficult (at best) to implement with raytracing.
Anyway, although Renderman may borrow a lot of techniques from raytracing, it (the Pixar implementation) isn't a raytracer. - kasurila, on 10/12/2007, -0/+2Quake III raytraced: http://graphics.cs.uni-sb.de/~sidapohl/egoshooter/ should be a decent example of realtime raytracing in games. Only video available though...
- GT35R, on 10/12/2007, -1/+3Well there you go Wii Fanboys, Nintendo hypes performance too.
- ThetaDot, on 10/12/2007, -0/+2Real-time raytracing is not new in several non-game applications.
It already is 'with' many people in other industries, and has been for quite a while. - Boojum, on 10/12/2007, -0/+2Um, I don't know where you got that O(N!) figure, but ray tracing is only O(log N), thanks to the acceleration structures. It's sub-linear. And the acceleration structures can be done in O(N log N). Ray tracing actually scales better than rasterization. That's why it's making a comeback.
And I hate to break it to you, but Cars actually used a fair bit of ray tracing. - sandwichpants, on 10/12/2007, -1/+2Who here remembers how one radiosity was initially developed from software used to trace radiation leaks from nuclear reactors?
Anyway, I want real time raytracing with per pixel displacement mapping, sub surface scattering, 3D motion blur with curved interpolation, brick mapped irradiance caching with nice blurring to get rid of all that nasty noise you get from most QMC implementations and antialiasing with nice filters like Mitchell-Netrivali! Basically I want a combination of the features of PRman and Vray (Or Brazil, or others) in real time. - Blackfish, on 10/12/2007, -0/+1Yay...I loved watching my Amiga raytrace a single frame for 2 or 3 days... it was fun :)
- HappyScrappy, on 10/12/2007, -0/+1Radiosity only helps you determine the lighting for the model, you still have to raytrace it to make an image out of it.
- Boojum, on 10/12/2007, -0/+1There's always other, non-hierarchical approaches. There was a SIGGRAPH paper this year on the subject: have a look at "Ray Tracing Animated Scenes using Coherent Grid Traversal." The approach was to use a new packet-based algorithm for traversing grids, which are so simple they can be rebuilt from scratch in real time for simple enough objects.
The nice thing about games and real time ray tracing is that instancing geometry is dirt-cheap. If you've got individual acceleration structures for each unit, building a good, hierarchical top-level acceleration structure over them should be easily doable in real-time. - ChileanGoD, on 10/12/2007, -0/+1Wasnt there a research for a chip that was doing this?.. I remember seeing a demo of quake 2 with this real time whatever. It was some chip that running at very low speeds.. a couple of Mhz... did what other graphics chips did with alot of more power. I just cant remember if it was raytracing the "thing" it did.
- porkstacker, on 10/12/2007, -0/+1Wow, I can remember back in the early 1990s doing 640x480 renderings using a semi simple (low reflectivity recursion count, and 16 primary diffuse samples) raydiosity algorithm, and it took over a week to render the image.... now we're talking about real-time raytracing??? That is insane!
- haelios, on 10/12/2007, -0/+1Anyone heard of the work done by the guys over at ART VPS (http://www.artvps.com/)? They have a hardware solution that specialises in ray tracing that is used in many (more than you think) product visual demos.
Some of their work (see the site) is really impressive.
Something similar but optimised more for speed than quality might work quite well... - dasil003, on 10/12/2007, -0/+1Yeah, if you really wanna be impressed check out http://www.pbrt.org/gallery.php
That's a lot more than raytracing though, and most of those scenes probably took days to render at a high resolution. I highly recommend the book if you're interested in what really goes into photorealism (caustics, diffuse reflection, depth of field, subsurface scattering, etc. etc.) - phlux, on 10/12/2007, -1/+2Ya i have my machine set to 1920x1200 so i need to increase the font dramatically to read things on it... but I need al lthe screen space - so I run a high res.
If only I could get my desktop raycasted - it might make it more optimized. - Spazkake, on 10/12/2007, -0/+1http://upload.wikimedia.org/wikipedia/en/thumb/7/77/3chromeballs.png/800px-3chromeballs.png
-
Show 51 - 85 of 85 discussions



What is Digg?