Rendering Competition, Patrick Schiel
Click on image to download movie
Topic 1: Texturing / Bump Mapping
Close-up of the effect:

Picture used for bumpmap:

On this sphere, you can observe the bumpmapping shader effect. The bumpmap picture
is used as a heightmap, and the shader takes additional values for diffuse and
specular lighting, which produces the red color.
From the values of the bumpmap picture, the shader computes the corresponding normal
vectors, together with the lighting, a relief effect is produced.
BumpShader sourcecode
Topic 2: Surface Shading / Cook-Torrance-Shader

On this close-up, you see the effect of a cook-torrance shader. It uses diffuse and
specular as well as ambient lighting, and a reflection effect (you can see on the sphere
reflection of the sky, the grass and other spheres).
The shader is implemented with using fresnel term, reflections are implemented by
computing a reflection ray and continueing the raytrace process, incorporating the
result of the reflected ray into the shader.
CookTorranceShader sourcecode
Topic 3: Surface Shading / Procedural Shader

This shader generates a "cow pattern", similar to the texture used in the course,
but without using a texture. A procedural shader algorithm is used to calculate the pattern.
The implementation uses the perlin noise function and lerping between two colors to produce
the desired effect.
ProceduralCowShader sourcecode
Topic 4: Fun / Physics-Simulation
The movement of the spheres is not pre-calculated, the animation is calculated frame by
frame. First, a set of spheres is generated with random positions and 3dimensional velocity
vectors. For each frame, the velocity vector is added to the position. Additionally, a
fixed gravity value is added each time to the y component of the position vector.
Bouncing is realized by checking the sphere positions, if a sphere hits the ground,
the y component of the velocity vector is negated, plus a little percentage is subtracted
of the velocity vector to simulate the energy loss during the bumping on the ground.
Additional collision checking of the spheres amongst each others was planned, the hit test
is implemented, but unfortunately I couldn't derive the equations to calculate the resulting
velocity vectors of both spheres (I had physics for simulating billard balls, but couldn't
transfer it to 3d space...) :-(
The code responsible for the physics is found in the main raytracer file, lines 176-258
MicroTrace.cxx sourcecode