Our Features

We implemented a Number of Features to make the Cave look more appealing

and here are the Descriptions

Basic Area Light Sampling

Without Area Light
With Area Light


Area Light Test:
This scene shows that despite we only use a direct integrator a soft shadow is observable in the scene where an area light was used. We included area lights in our scene to get nice shadows and support our scene with a well rounded light distribution.

Technical challenges:
We had a problem with spherical area lights at first, but after we removed some print statements from our code we noticed an slightly observable change in time consumption. Afterwards we did not have to wait 5 min for one rendered area light test and they were actually working.

Image Denoising

Without Image Denoising
With Image Denoising


Image Denoising Test:
We used the intrestingly designed test scene provided by someone on teams, which was always partly working. Designing our own tests helped us to figure out issues and allowed us to apply alpha masking to any mesh. As you see here we applied a simple alpha masking to a bunny such that one part is visible and the other fades into see through material.

Technical challenges:
Just writing the code for image denoising was quite simple, as the denoising library does most of the work. However we had great problems connecting the library to our code on windows. To fix this issue we just switched to Linux.

Alpha Masking

Without Alpha Masking
With Alpha Masking


Alpha Masking Test:
We used the intrestingly designed test scene provided by someone on teams, which was always partly working. Designing our own tests helped us to figure out issues and allowed us to apply alpha masking to any mesh. As you see here we applied a simple alpha masking to a bunny such that one part is visible and the other fades into see through material.

Technical challenges:
For alpha masking, we first tried to shoot a new ray from the intersection point which was very slow. We came up with a much smaller and quicker solution afterwards which you can see in the code.

Shading Normals

Without Shading Normals
With Shading Normals


Shading Normals Test:
As you can see in the shading normal test we can now apply textures to objects. The result highly benefits our scene since nearly every mesh we used got a texture applied to it.

Technical challenges:
We first had a small problem regarding not applying the transformation correctly.

Break Things



We implemented a custom Sampler and tried out many different ways of generating "random" floats.
In our scene, a broken sampler looks like being behind a window with blinds.


Features in our Scene:

Basic Area Light Sampling: Area lights were used (especially) at the entrance and at the fire to make the lighting perfect.

Image Denoising: Image Denoising, as a postprocessing step, was used to (you guessed it) denoise the image. It had a big impact.

Alpha Masking: Alpha Masking was used to get the correct shape of the leaves, as they have holes. Alpha Masking is responsible for getting the holes in the leaves.

Shading Normals: Shading Normals are necessary in our scene to correctly apply some textures to the objects, for example the deer, the hammer and the rocks.