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.

 

 

Lotus

 

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.

Moonrise 

(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