You might have seen the first CausticOne card on this site some time ago: it was a prototype of a hardware ray-tracing accelerator that will be demonstrated at SIGGRAPH this summer. Caustic Graphics is not the first company to try accelerating ray-racing, and one would think that it would require a massive chip with hundreds of cores to build something that works. A quick look at the card tells us that this is not what’s happening: no massive chip, no super-fast graphics memory, cooling or power connector in sight. So, how do they do it?
Caustic says that it has found another way: they have realized that the data traversal for rendering was very expensive to do on a CPU and inconvenient to do on a GPU. Caustic is using a proprietary algorithm and hardware (mainly a special memory controller) to make ray-tracing faster. The hardware is there not to accelerate the actual computing (it can too), but mainly to accelerate how their algorithm works. In the end, it is true that most things are memory-bandwidth limited. It often come down to “how fast can you mova data?”
A demo with “coders’ artwork” that shows that interactive Ray-tracing
work in the lab.
Caustic didn’t give me enough details to fully understand how the whole process, but I can’t blame them… they are small, and they want to keep competitors guessing. As a proof of concept, they showed me a “tech demo” that was running on a development board (an FPGA that runs at a 1/14th the expected speed of the CausticTwo card). It looked promising. The demo was “programmers’ art”, but showed a ray-traced scene running at single-digit frame rates (5-10fps at 640×480 resolution). The shaders were relatively simple, it was no “Crysis”, but Caustics expect the same demos to run much faster (10x-14x) with the final chip.
Developers/clients can use the card with use Caustics’ OpenGL extensions to write ray-tracing based shaders in a high level language. I’ve seen the code and it looks like regular glsl shaders, no problems there. If the geometry data can fit into the 2GB of memory that the card has, it should work. Note that CausticTwo does not replace the graphics card that’s already in the workstation. in fact, it could (in theory) work hand in hand with a GPU to further accelerate the rendering. Because of that, it is technically possible that a third party licenses Caustics’ intellectual property one day.
Caustic’s goal is to start by addressing the needs of those who already use ray-tracing daily: architects, CAD… That’s where it should add an instant value (worth top dollars), especially for in-application real-time previews.
While I was there, Caustics mentioned that one day, ray-tracing might be widely used for gaming. Over the long run, everything is possible, but I personally don’t think that we will see ray-tracing dominate gaming within the next five years, or even in the next decade. Current graphics processors (GPU) architectures simply provides much better “bang for the buck” in terms of graphics believability, when compared to ray-tracing. Using ray-tracing in conjunction with other rendering techniques on general-purpose massively parallel architectures is much more likely to happen in that time frame. At the moment, I don’t consider Caustic Graphics to be a menace for AMD or NVIDIA.
Right now, focusing on clients that don’t need any convincing seems like a sound strategy for Caustic. The CausticTwo card will be available in Q1 2010 for about $2500. In the meantime, CausticOne will be demonstrated at SIGGRAPH on 3DSMax (booth #2201). Caustic will also have its own booth (#2026).