caustic-logoCaustic, makers of the real-time graphics card we’ve discussed before, had a huge announcement at SIGGRAPH:  They’ve partnered with the likes of Autodesk, Rhino, Lightworks, and more to bring their card to the masses.  If you’ve seen my latest podcast then you know I spent some time talking to them about the hardware and how it works.  Read on after the break for the details.

What is Caustic?

The “CausticOne” is a real-time raytracing accelerator card.  Cards currently on the market (NVidia, AMD) are rasterization cards, meaning they work like:

  • Break your scene down into triangles
  • Project each (3D) triangle into the viewable screen space (2d)
  • Render the Triangles.

Ray-tracing, however, is a completely different process:

  • Load your scene into memory
  • Project a ray from the view, through the screen pixel to render, into the scene and see what it hits.
  • If it hits something, cast more rays toward the lights to compute shadows, and cast reflection rays
  • Combine all the collisions to compute the color for that pixel
Example of Raytracing, from CodingHorror

Example of Raytracing, from CodingHorror

As you can imagine, ray-tracing is slow.  The results from ray-tracing are far more physically accurate, tho, and that’s why ray-tracing is the method of choice for tools like mental ray, vray, and pretty much every other major rendering package on the market.

However, ray-tracing is more easily parallelized.  In rasterization, there is no easy way to parallelize the display as there is too much inter-dependency.  You can’t split by triangles, as certain triangles will be in front of others.   You typically don’t have the entire scene in memory, so you can’t easily separate by scanline or screen-space (however, this is the original of NVidia’s SLI technology).

In ray-tracing, each ray is independent of other rays so that each ray can be independently run on another processor.  This is how NVidia is bring us OptiX, using the GPU’s massive thread-count to cast hundreds of rays simultaneously into the space.