Tuesday, 8 July 2008

Raytracing revisited

I wrote about raytracing in my first article on this blog. At the time I believed Intel went for raytracing in their new discrete graphics part.
I was rethinking the issue and now I believe I was wrong. There's just no sense in creating a device that is so incompatible with existing devices that making it compatible would take such a huge effort.
Instead I am now pretty sure that their part will be just like ATI's or NVidia's. Hopefully faster, to create some new competition, but otherwise just about the same.

What I was forgetting at the time (writing the Intel raytracing article) was that all current generation graphics cards are also very powerful floating point processors. NVidia just recently enabled physics acceleration in their drivers and it wasn't long before somebody ported that to ATI cards. Custom floating point calculations have become a reality on today's graphics cards.

So where does this leave us with raytracing possibilities?

With all the FP power modern graphics cards offer it won't be long before somebody makes another raytraced Quake3, like these guys did. Only this time the calculations will be performed on a graphics card instead of 20 AMD XP 1800 processors. With an XP 1800 managing about 2 GFLOPS, a graphics card with potentially 1 TFLOPS should easily render the same scene at least as fast as that cluster of 20 XPs. Especially since raytracing lends itself nicely to batch processing.

So now we just need three things:
1. Some really general purpose APIs for utilizing the graphics card's processing power from all three major graphics card providers
2. A good raytracing API, something like Direct3D, capable of working with those card APIs (OpenRT reprogram?)
3. An enthusiast to rewrite the Quake 3 engine again

Slowly, but surely there will be more and more serious projects coming out untill finally there will be a commercial game.
By then, the cards themselves will also feature some genuine raytracing acceleration...