Raytracing

With next year’s Linux conference fast approaching I realised that I didn’t really have anything to do a talk about. I’ve done plenty of work in the last year, but it’s all been pretty dull kernel internals, nothing with any wow factor. Mostly just a zzzz factor.

Ever since I started working on Linux on Cell, I’ve been curious as to how you actually program those pesky SPEs. And so this is where I kill two birds with one raytracer.


spheres

The raytracer so far, click to watch them spin!

The plan is to write a raytracer that runs on the Cell. Specifically we’re gonna get it running on the Playstation 3, as that’s the most common Cell system. Hopefully in the process there’ll be some interesting lessons learnt and so on, and perhaps we’ll even get some good performance out of it. If not, at least we’ll have pretty pictures.

So far I’ve written a basic raytracer (screenshot above!), starting from nothing, which has been a great learning experience to start with. That gives us a nice simple base on which to begin porting to the Cell. My plan for the talk, if it gets accepted, is to try and take people from pseudo-code right through to an optimised Cell version.

Posted by mike on Friday July 20th, 2007, tagged with , , ,

One response to “Raytracing”

  1. Ronald says:

    We have started a project with exactly the same goals.

    This summer we worked on the Bluesteel raytracer (http://www.cag.csail.mit.edu/ps3/blue-steel.shtml) and learnt a lot about what works and does not work.

    We have started a project on sourceforge, Sting Raytracer. We are developing the ideas in python and when we have a concrete implementation will code the Cell.

    I would be very interested in seeing what you had developed.