Rendering Competition 2007/2008

Universität des Saarlandes


Participants:
Name: Bruno Ranieri
Name of the animation:
Dedication to Populous
The animation.
List of all topics covered:
Topic:
Reflective and Refractive Transparency
Effect shows:
The water in the drinking trough
Source code:
RefractivShader.hxx
Description:
This shader simulates the refraction and reflection of a light ray that occurs if this ray go from one transparent medium into another. Here it is used to simulate the water in the drinking trough.
From the hit-point two rays are emitted. The reflected ray and the refractive ray. The resulting color of the hit-point is a combination of these two and a surface base color.
Topic:
Procedural Shading
Effect shows:
The Table and the drinking trough
Source code:
ProceduralWoodShader.hxx
Description:
This shader computes a wood surface. It takes initially an axis to determine the direction of the grown wood. The characteristic annual rings of the wood are then computed w.r.t. this axis and the hit-pint of the light ray with the surface.
Topic:
Fractal Geometry
Effect shows:
The fractal landscape on the Table
Source code:
FractalTool
LandscapeShader.hxx
Description:
The Fractal Landscape is generated with a separated tool, located in the folder FractalTool. To generate the landscape, compile it with the make file and start it with these parameter:
./FractalTool FractalLandscape.obj small 40 0.9 1.1 8 1.0 .7
The Fractal Algorithm is taken form the Book Texturing and Modeling by Ebert, David S.; Musgrave, F. Kenton; Peachey, Darwyn.
The shader for the landscape uses the height of the given point in the landscape to determine its color. Low areas are blue like water, there is a small green belt at sea level and steep mountains are grayish like rock and the heights are covert with white snow.
Topic:
Bump Mapping
Effect shows:
The basement of the temple
The ground
Source code:
Texture2D.hxx
Shader.hxx
PhongShader.hxx
Description:
With Bump Mapping one can simulate rough surface. According to a bumpmap the height of the hit-point of the light ray and the surface is modified. The normal vector of the surface at the hit-point is tilted according to the derivation of the bumpmap. This is needed to simulate a point on the surface going up or down a bump.
For the implementation we extended the class Shader with support for bumpmaps. Since a bumpmap is some sort of texture I used the class for storing textures for this. The class Texture2D was extended with a method to return the derivative of the texture or bump map at a given point. Then some of the shaders were extended with support for bump mapping. The PhongShader is given as one example.
Topic:
Multithreading
Source code:
render
Description:
The multithreading is implemented in a shell script that starts two instances of MicroTrace at a time. On a processor like the Intel Core 2 Duo the operating system will take care that every instances will run on its own core. The drawback of wasting memory is negligible, since a modern computer with such a processor is also equipped with about 2 GB of RAM and one instance of MicroTrace takes about 1% of this RAM.
Using this approach one gains a speedup of approximately factor 2.
References:
The References to used books and Web pages are given in the source code.