Name of the participant:

Alexander Reuter


Animation:


All models and their animation are made by myself. The Textures are made available by http://www.texturenland.de/. I generated the bumpmaps from the textures. I had no experience in modelling and wrote an own ExportScript for Blender, based on the Wavefront .obj- Exporter, which is included in the Blender-package. I added a new filetype: worldfiles, which includes all cameras and lights.



Topics:


Multithreading


Multithreading is a way to run several programparts parallel to each other, but using the same Programspace. So it is possible to render parallel on each core of a Multicore-Processor at the same time.

First I implemented a pixelwise Multithreading. Due to the lack of finding the „static int maxbounds“ in the scene, I decided to have a Framebased Multithreading, which is in animation just as fast as pixelwise Multithreading.


Of course: Multithreading results n-times more speed on a n-core CPU.


The threads have a „Pool“ of frames. Everytime, a thread is ready, it takes a frame from a pool and increases its current frame.

MicroTrace.cxx



BumpMapping


Bumpmaps just lay like a normal texture on the surfaces of a mesh and is not directly seeable.

Bumpmaps change the normals of a surface, depending on the derivation of the 4 pixels, surrounding the hit point.

The Result is a complex shaded surface with a roughly look.


I used Bumpmaps very often. For example the house, the furniture and the hills and the water of course.

BumpMap.hxx





SAH-KD-Tree


The SAH KD-Tree is a very smart datastructure, which handles the fact, that especially the location of the splitting planes in a KD-Tree, influences the speed of intersectiontesting.

To find the best point, where a split plane has to be set, I use the SAH (surface area heuristic).

It considers the number of triangles and the area, they clamp.


The effect is significant:

The Raytracer takes about one fourth of the time, that a simple KD-Tree with half-placed planes needs.

KDTree.hxx
KDTree.cxx



Instant Radiosity


One way to get the scene more realistic is Instant Radiosity. It simulates a smooth lightning of a scene without black shadows by using the reflection of the objects in the scene. This is realized by shooting some rays from the light into the scene in a pseudo-randomly way, using the Halton-Sequence, described by Alexander Keller`s „Instant Radiosity“.

The algorithm begins with N lights and a reflects them with a probability p. The intensity of the lights will decrease in every step.


This effect gives the Television in my animation a very realistic environment. The room is lightened in the color of the content of the TV-screen.

Scene.hxx





TV-Texture


This was my on idea:

The TV-Texture is like a normal texture, but has some advantages:


If no png-file is given, it wants to have an object-file. It renders a full scene and stores it in an image, otherwise it uses just the given image.


After that, the image gets some special TV-effects, like RGB-splitting and noise.

Additionally, the TV-Texture gets an arealight, and changes the color and intensity of it depending on the information of the scene/image.


The TV-Texture is the highlight at the end of the animation.

TVTexture.hxx