19
$\begingroup$

Intro graphics courses usually have a project that asks you to build a ray tracer to render a scene. Many graphics students entering grad school say that they want to work on ray tracing. And yet it seems that ray tracing is a dead field in venues like SIGGRAPH etc.

Is ray tracing really the best way to render a scene accurately with all desired illumination etc, and is it just the slow (read non-interactive) performance of ray tracers that makes them uninteresting, or is there something else ?

$\endgroup$
  • $\begingroup$ Maybe ray-tracing is a done deal. $\endgroup$ – Dave Clarke Mar 18 '12 at 12:51
  • $\begingroup$ I think the question title needs editing, Raytracing is a pixel-based renderer, maybe it should be rephrased as 'Raytracing vs Object-based rendering' or 'Raytracing vs Rasterization' $\endgroup$ – aaecheve Mar 18 '12 at 15:55
  • $\begingroup$ I'll modify the title. $\endgroup$ – Suresh Mar 18 '12 at 17:17
  • $\begingroup$ @DaveClarke: Not sure what that means ? $\endgroup$ – Suresh Mar 18 '12 at 17:17
  • $\begingroup$ No more research to do – I should avoid slang. $\endgroup$ – Dave Clarke Mar 18 '12 at 17:24
11
$\begingroup$

Raytracing is a very nice and intuitive algorithm, and it is a more physically realistic way of describing the illumination of a scene than rasterization, but:

  • Raytracing is slow, specially if you want to implement the more realistic effects that distinguish it from rasterization (e.g. refraction, reflection, motion blur, soft shadows) because this implies creating a lot more rays per pixel.
  • Most people can't tell the difference between real and fake effects, which I think is the key point. The goal of a practical rendering algorithm is to create a photorealistic representation of a scene in the most efficient way, and right now Rasterization, although uses a lot of hacks, accomplishes this very well.
  • There are many other practical limitations of Raytracing compared to a Rasterization renderer: poor anti-aliasing and displacement mapping, limited instancing, etc.

Even in non-interactive applications, such as movies, Raytracing is used very little becasue of its limitations. Pixar only started using Raytracing in Cars, and only for some specific reflection effects (Ray Tracing for the Movie ‘Cars’).

Here is an excellent article that describes in more detail the current state of Raytracing and its advantages and disadvantages: State of Ray Tracing (in games).

$\endgroup$
8
$\begingroup$

Basic ray tracing has a major problem related to ambient light. Most illumination models treat ambient light as a constant factor pervading the ether. While ray tracing is great for computing reflections, it suffers from numerical instability and complicated surface intersection tests. Ray tracing may not play nicely with hardware accelerated rendering since recursion plays a major roll in determining the illumination for any particular pixel. Basic ray tracing is computationally very expensive.

Radiosity handles ambient light better in that it treats all objects in the environment as light sources, producing a lighting model that is in some way more realistic than ray tracing. With a radiosity solution there are a fixed number of polygons in a scene, and the computation is amenable to hardware acceleration.

Ultimately ray trancing is not best way to render a scene, but it is a component of a good rendering strategy. The high cost computational cost and poor ambient lighting are major strikes against ray tracing. As a research topic work is ongoing, but seems to be focussed on hardware acceleration.

$\endgroup$
  • $\begingroup$ Note that one of the most common ways of doing radiosity (in particular, of handling any specular aspects of radiosity and general radiance functions) involves ray tracing! Indeed, ray tracing and radiosity are both approximations to the rendering equation. $\endgroup$ – Steven Stadnicki Mar 20 '12 at 23:14
  • $\begingroup$ True that. A basic radiosity (how's that for an oxymoron?) approach needs something like raytracing for specularity and reflection. $\endgroup$ – John Percival Hackworth Mar 21 '12 at 0:18
4
$\begingroup$

I wouldn't say that ray-tracing/path-tracing is dead ... if anything, there's been quite a resurgence of popular interest in the field due to the inherent parallelism of the many associated algorithms in this area combined with the speed of GPU-based systems that are allowing for millions of rays to be calculated per-second. Added to that is the flexibility in the rendering pipeline that more generic languages such as CUDA and OpenCL are enabling that allow developers to leverage the parallel functionality of the GPU without having to explicitly use the OpenGL graphics pipeline like initial GPGPU techniques. Some notable main-stream examples of continued path-tracing research include:

  • The research of Daniel Pohl and others in the Intel Advanced Render group
  • Nvidia's Optix engine
  • SIGGRAPH this past year included a couple courses on Monte Carlo image synthesis as well as discussion on the latest in photon density estimation techniques.

Finally, you have a lot of researching going into optimization techniques for the global illumination problem, including point-based global illumination, Photon Mapping and related optimizations, advanced appearance modeling (including data-driven methods), irradiance caching, etc., etc.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.