Inspired and impressed by the IOTD of Joost's raytracer, I started
to write my own (and first) raytracer. As information source I used mainly
the almighty Real-Time Rendering book,
some intuition and a lot of luck. It resulted in a classical raytracer, with
the usual features:
planes, spheres and (textured) meshes as primitives
point lights, directional lights and global illumination (monte carlo)
support for (HDR) radiance maps
loose octrees to speedup rendering of high-poly meshes
A description of the image:
On the top left you see a scene lit with a home made LDR radiance map. I
made it by photographing a christmas ornament since it was the most round
and reflecting thing I could find in my house. It wasn't quite perfect round
at all and there were some traces of fake-spray-snow on it too, which
resulted in a not so perfect map. I had fun anyway :) (yes, you can see me
laying on the street photographing the thing).
On the top right a standard scene, lit with a HDR map.
On the bottom another scene, lit with the same HDR map.
I used HDR maps from http://www.debevec.org/Research/HDR/ and used also HDR
Shop you can find there, to convert my christmas-ornament thing to a more
compatible float map.
On my humble page at http://www.xs4all.nl/~reije081/raytracer/ you can find
a kind of log of my progress during developing it. Joost did something
similar with his raytracer and I really liked that: it showed me that those
impressing renderings you often see as IOTD do not come out of the blue, but
that all raytracers start with some crappy renderings. (like mine did).
As you might see in my development log, it is a project of some time ago, I
was recently busy with some other (real-time graphics) projects. The next
raytracer I'll write will use photonmapping, something that seems very
interesting to me.
Thanks for your time,