How many raytracers have you written? I think I must have done 50 or so by now, some really simple and specific for a demo, others more generic and one even professional. This is just one more of those raytracers, done during 2003 after I read read about Renderman (by Pixar) and I encountered the word "shader" for the first time in my life. Well, then since everything has been about shaders around me.
This page contains some images and a video of the first raytracer I wrote that supported light and surface shaders as standlone little programs to run during surface and light evaluation. I did everything in software rendering of course, and I implemented all of the basic shaders I could find in that paper. This paper by Pixar was such a true revelation to me, and the reason for me to buy a graphics card that same week and start learning OpenGL and hardware shaders the month after (which result was Paradise). The two weeks test raytracer contained the following features:
Raytracing experiments of 2001 and 2003
![](ray_01_p.jpg)
Reflecions - 2001
![](ray_02_p.jpg)
Polyon meshes - 2001
![](ray_03_p.jpg)
Procedural shader, motion blur - 2003
![](ray_04_p.jpg)
Ambient occlusion - 2003
![](ray_05_p.jpg)
Volumetric raymarching - 2003
![](ray_06_p.jpg)
Light scattering - 2003
![](ray_07_p.jpg)
Julia sets (raymarching) - 2001
![](ray_08_p.jpg)
Julia sets (raymarching) - 2001
This page contains some images and a video of the first raytracer I wrote that supported light and surface shaders as standlone little programs to run during surface and light evaluation. I did everything in software rendering of course, and I implemented all of the basic shaders I could find in that paper. This paper by Pixar was such a true revelation to me, and the reason for me to buy a graphics card that same week and start learning OpenGL and hardware shaders the month after (which result was Paradise). The two weeks test raytracer contained the following features:
- Raster space antialiasing
- Time antialiasing
- Camera exposition simulation
- Surface shaders (procedural texturing and lighting)
- Volume shaders (procedural volumetric effects, see first video)
- Reflections, refractions, shadows
- Able of raytrace spheres, cylindres, cubes, planes, cones, revolution objects, 3d julias and polygonal meshes.
- Lame bump mapping
Raytracing experiments of 2001 and 2003
![](ray_01_p.jpg)
Reflecions - 2001
![](ray_02_p.jpg)
Polyon meshes - 2001
![](ray_03_p.jpg)
Procedural shader, motion blur - 2003
![](ray_04_p.jpg)
Ambient occlusion - 2003
![](ray_05_p.jpg)
Volumetric raymarching - 2003
![](ray_06_p.jpg)
Light scattering - 2003
![](ray_07_p.jpg)
Julia sets (raymarching) - 2001
![](ray_08_p.jpg)
Julia sets (raymarching) - 2001