I took a course in Interactive Computer Graphics, concentrating on OpenGL and

some shader programming in GLSL. I have experience in programming a flight simulator

with user input, rendering, shading, texturing, animation and so on.

    I have also taken a course in Production Computer Graphics, which covers

raytracing, shaders, texture synthesis, global illumination and so on.


    Here are examples of images from a raytracer that I wrote from scratch:

Click on the thumbnail to see an excerpt of my code for the Basic Raytracer.
Click on thumbnail to enlarge:


Basic Raytracer


This image illustrates recursive raytracing, with shadows, reflections, refractions, some anti-aliasing, and constructive solid geometry (CSG), namely union, subtraction

and intersection of objects.





I then implemented depth of field (DOF), more anti-aliasing (uniform jitter) and soft shadows. This image below shows DOF (middle petals are in focus, while everything else is blurry) and some anti-aliasing. I used the intersection of spheres (CSG) to create lotus petals, and created the lotus from scratch (no libraries).

Turtles Crossing the Sea

(procedural textures)


I implemented procedural textures like wood, marble, planets and water, as well as bump mapping and fractal bump mapping. As there was insufficient time to create an

object mesh, I moved sphere objects around to create the turtles and the moon.


(procedural textures)






Ferrero Rocher Chocolate 

(procedural textures)






Wooden Sphere

(procedural textures)






Caustics and Color Bleeding


I also implemented caustics and color bleeding (Photon Mapping) in a Cornell box. There are faint caustics in the shadow of the sphere below.





Caustics in water