John Carmack on Ray Tracing

Started by
138 comments, last by AndyTX 16 years ago
What do you think?
Advertisement
I may not be qualified to have an opinion on the data structures/hardware debate he discusses...but from a pure logic standpoint, raytracing is simply vastly more calculation intensive than rasterization in the general case, so i have to agree that pure, traditional raytracing in unlikely to win out over rasterization in the forseeable future.

In general, raytracing offers two main features that have not mapped efficiently to rasterizers: global illumination and global reflection.

Progress has been made in GI, but as far as I know, correct global reflection is impossible as yet, except in special cases like flat planes, such as the popular water reflections featured in most current application (in a rasterizer, a seperate reflection buffer would need to be rendered for each face--or group of faces with similar normals--this may be possible in year 2050 :P).

It remains to be seen if robust methods can be developed for thess effects in rasterizers; if not than ray tracing will be inevitable.
I think that raytracing will not be a viable options until rasterization will reach that borderline where the quality provided by all those hacks (i.e. fake soft shadows) will no longer satisfy users. When this time will come, we should compare performances of the full quality rasterization approach (wich in the case of shadows is not all that fast too) and the raytracing way of doing things. Others factors will be probably consider, i.e. most of those effects are easy to implement in RT, and I suppose that since RT often uses the same approach to render most of them, HW could be also easier to build.

I was under the impression that Carmack tried to keep a Cautious point of view: as I see it, what he said is something like "RT won't be the main rendering method, but it will be used more in the future". This is not really a discover IMHO...

But RT is not inherently slower than rasterization: simply rasterization can be better taylored and tuned to get better performances paying in quality. Once we reach that point where we no longer accept those limits (may occour several years), perhaps it will become less obvious the advantages of rasterization over RT. I still remember when lighting interpolation between vertices was the only practical way of rendering a game (or even when doing the lighting was done once per face). Many people stated that per pixel lighting would have been simply to slow for realtime applications, and some even used to repeat that we really would have never asked for all that quality...
In the meantime, it would be very nice to see true RT hardware with power comparable to latest nVidia or Ati cards.
I hope that intel larabee will give us more to speak about (or perhaps it wont't affect that debate at all)...
Quote:Original post by cignox1
I think that raytracing will not be a viable options until rasterization will reach that borderline where the quality provided by all those hacks (i.e. fake soft shadows) will no longer satisfy users.
Cue argument that our graphics is already as good as it's worth bothering and people should be working on gameplay...
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
Quote:Original post by Promit
Quote:Original post by cignox1
I think that raytracing will not be a viable options until rasterization will reach that borderline where the quality provided by all those hacks (i.e. fake soft shadows) will no longer satisfy users.
Cue argument that our graphics is already as good as it's worth bothering and people should be working on gameplay...


I completely agree......Crysis for example!
Author Freeworld3Dhttp://www.freeworld3d.org
An interesting read. I'd like to see what the results are from his voxel tracing method but it does seem to make a lot of sense. If you could cram in lots of dense detail into a static voxel structure and raytrace that efficiently on GPU you could get some really detailed environments. Of course it'd be static but if it would output proper fragments then you could do the dynamic stuff like characters using traditional rasterisation methods and get the best from both worlds.

This is, I believe, not too dissimilar from what Outcast did, where it had really nice voxel landscapes but used polys for the objects and characters.

I guess he's thinking about using raytracing to provide an alternative type of primitive that works alongside polys. If you had hardware support and you could still use pixel shaders over it then it'd fit in nicely with existing methods like shadow mapping, reflection, refraction, etc. etc. Instead of having a radical shake up and moving *everything* to raytracing in one go you could actually use it for parts of the scene where it really gave the best quality.
Quote:Original post by Promit
Quote:Original post by cignox1
I think that raytracing will not be a viable options until rasterization will reach that borderline where the quality provided by all those hacks (i.e. fake soft shadows) will no longer satisfy users.
Cue argument that our graphics is already as good as it's worth bothering and people should be working on gameplay...

Isn't part of the appeal of ray tracing that it's easier in concept than the hack methods we're currently using, thus if it were viable it would also give us more time to work on gameplay?

Quote:Original post by Trapper Zoid
Isn't part of the appeal of ray tracing that it's easier in concept than the hack methods we're currently using, thus if it were viable it would also give us more time to work on gameplay?


Well I suppose you can say it's "easier" in the fact that if you shoot out enough rays with enough indirect rays bounding off them, you "automatically" get some of the effects that are currently achieved through hacks (soft-shadows with penumbras , indirect lighting, reflections, refractions, etc.). As for making it actually feasible to send out that many rays to the point where you can compete with the guy still using rasterization and hacks...easy isn't the word that comes to mind.

Hello there,

"In general, raytracing offers two main features that have not mapped efficiently to rasterizers: global illumination and global reflection."

I just want to clarify that this is not true. The ray tracing method is more limited than one might think. Especially it is not a global illumination method. At the ray-surface intersection point an ambient, diffuse and reflective term will be evaluated. Actually raytracing works analog to the phong model. The evaluation of the ambient term is similar to the phong model - it is assumed that ambient light is emanated evenly from all directions - a very rough approximation to global illumination.
Then a ray will be cast into the direction of each light source in the world and if an intersection is reported the light source is occluded and will not influence the diffuse color of the surface point.
In a third step reflections and refractions are recursively evaluated by casting rays in the direction of the reflaction and refraction vectors. Note that standard raytracing handles perfect reflection only, like it occurs in mirrors. So it is not even suited to create the appearance of metallic surfaces, because this kind of reflection is partly diffuse and light will be scattered into a cone about the reflection vector. Because it does only support hard reflections the phong model is actually better in creating specular effects.

Raytracing = Ambient Term + Diffuse (Lambert) Term + Hard Reflections
Thats not too great - a programmable rasteriser can do much more

There are extensions to overcome this limitations: Raytracing may be combined with radiosity to make it better at ambient lighting. Another method is photon mapping, where light rays are actually cast by the light source not by the observer and accumulated in surface patches. This method is able to compute caustics and global illumination. Finally hard reflections may be overcome by casting several rays (very expensive) or beams (cones) into the space (also very expensive). Thats called cone-tracing I think.

Conclusion: Ray tracing is not as good as its name suggests and also needs several extensions (hacks =) to overcome its limitations.

If you look up the terms Phong / Lambert Shading, Radiosity, photon-mapping and cone-tracing you will get the idea.
Quote:Original post by Promit
Quote:Original post by cignox1
I think that raytracing will not be a viable options until rasterization will reach that borderline where the quality provided by all those hacks (i.e. fake soft shadows) will no longer satisfy users.
Cue argument that our graphics is already as good as it's worth bothering and people should be working on gameplay...


Oh man, I couldn't agree more! Very well said. Are you guys tired of playing games that are devoid of content? All those flashy 10 hours worth of gameplay games that are brutally sold for 50 bucks?

This topic is closed to new replies.

Advertisement