Authors:
Andreas Zins
Marc Pätzold
"Rendering Competition"
Vorschau

BVHStructure


BVHStructures are used for an efficient sorting of the primitives. We can subdivide a scene into subscenes, or subnodes, each containing several primitives. BVHStructures are cheap to build, but somewhat slower than other acceleration structures. However, if a scene contains continuous changing objects, BVHStructures can improve the perfomance, because of their cheapness. When there are changing objects, the accelerationstructures have to be rebuild.
BVHStructure

SAHKDTree


SAHKDTrees are optimized KDTrees. Normal KDtrees are build, by splitting the scene in the middle and creating two subtrees. This structure can have a bad wors case runtime because the resulting tree cab be very unbalanced. A SAHKDTree generates a search tree that is balanced an therefore has only logarithmic depth.
SAHKDTree

Refractive and Reflective Transparancy


Refractive and Reflective Transparancy can be used to model glass and suchlike structures. It is used to define how the light gets warped when traversing the glass. Glass can behave just like a lens and distort the objects behind it. Also, glass can have different levels of opacity and therefore we have to adjust, how much of the light gets absorbed or reflected at the surface and how much light can pass through. We have two shaders, one to compute the reflections and one to compute the translucency of the object.
ReflectiveEyeLightShader
TransparentPhongShader

Fractal Geometry


Fractal Geometry is a way to create models, consisting of loots of polygons, automated and randomized. In our project, we used a fractal algoritsm to create a mountain. The algorism will create every time it is used a different mountain because we used a random number generator. to create every time the same mountain, theses randomised values hav to be saved in another data structure. Other variations of this algorithm can be used to create plants. The algorism is based upon a basic model. The basic model for a mountain couls be a triangle or a box. The basic model is then subdivided and each division creates triangles at the edges of the existing models. There are parameters to define the roughness, size and the models' detail level.
Fractal Geometry

Constructive Solid Geometry


Constructive Solid Geometry, CSG, can be used to create new models by combining existing ones. Models can be combined through addition, subtraction or intersection. If we add one model to another, the result will be the outermost surfaces of both models. Adding two spheres would result in a snowman-like model. Subtracting one model from another removes one model's surface from the other and intersection returns only the surface that both models have in common.
Constructive Solid Geometry

Multithreading


Multithreading is used to distribute the raytracing computations among several CPUs. To do this there are consumers. Every consumer has all the data needed to render the scene and renders a block of pixels. There is a pool in which everything is stored that has to be rendered. After the consumers have been initialized, very consumer takes a block of pixels from the pool and renders them.
Consumer
Consumer2

Interactive Application


The interactiveness of our application is done by listening to keyboard events and then moving the camera in the according direction
Interactiveness

Stereo Rendering


Stereo rendering is used to create a 3D image, by overlapping two pictures. The pictures show the same image from different viewpoint and they also differ in their color. When viewed with red/green glasses, each eye percieves only one image and this creates a stereo view.
Stereo