Details
Abstract
I worked on two ray-tracers during my senior year. One was an offline ray-tracer implemented in C#, and the other was a GPU implementation made in HLSL under XNA that can acheive real-time frame rates. My partner for both of these efforts was Conrad Kreyling. We maintained a dev blog of our progress as required by the class, which contains many images and video of our progress.
Images
Details
We made two ray-tracers, one offline and one real-time.
The offline ray tracer was written in C#. It displayed it's images using a XNA graphics device embedded in a Windows Form, because I wanted to learn how that kind of integration worked. (It would other wise be a very silly decision.) It is capable of multisampling and can produce some very nice looking images.
The GPU Implementation was done in HLSL under XNA. At the time, the most powerful graphics device we had available was an Xbox 360, so we made use of it. The XNA runtime does very little other than initialization: all the calculations are done in a pixel shader on the GPU. This implementation is limited: it can only handle a handful of objects, and a low ray bounce depth. The shader compiler really chugs on compilation as well: on my dev machine at the time, we were looking at builds that took around four hours to complete.
