Echoes of Destiny

We rendered our scene in 4K resolution with 1000 samples (Click here to check it out)!

Feature 1

Alpha masking

When combined with a texture, Alpha Masking enhances the representation of grass and trees, creating a more realistic effect. This technique selectively removes portions of meshes by ignoring interactions based on alpha values, particularly useful for crafting sharp and natural edges and corners for leaves. One effective strategy for improvement involves allowing rays to traverse based on a stochastic threshold.
For our scene, we used alpha masking for the leaves of the trees, the grass, and the flowers.

Feature 2

Normal mapping

For normal mapping, we referenced this article . A major challenge we encountered with normal mapping was understanding the OpenGL code and what it represented in the Lightwave framework. Once we resolved this issue, the mapping algorithm became clear, and we achieved satisfactory results.
For our scene, we used normal mapping for almost all of the objects.

Feature 3

Area lights
Area lights

Area lighting pertains to illuminating the surfaces of objects, like spheres or rectangles, by utilizing light sources that emanate from these surfaces. In comparison to sampling from an emissive object, area lights show reduced variance due to their contribution being proportional to the surface area.
For our scene, we used a single area light on the left side of the two characters to add a bit more lighting.

Feature 4

Improved
Environment Sampling

A painful implementation but it allows us to render scenes with lower-variance light sources originating from an environment map. The idea is to sample environmental light with higher luminance probability more often. To speed up the rendering process, we can precompute probability density functions (pdfs) and cumulative distribution functions (cdfs) of luminance.

Feature 5

Thinlens camera

The implementation of the thin lens camera utilizes the lens radius and focal length to achieve the depth of field effect. The lens radius controls the amount of blur in the scene; greater radius results in more significant blur.
For our scene, we used a lens radius of 0.005 and focal length of 0.858 to add only a very slight blur since this camera shot didn't require high blurring for a natural look.

Feature 6

Denoising

Denoising is employed to eliminate Monte Carlo noise inherent in stochastic ray tracing methods. In our rendering pipeline, we integrate a potent denoising library during the post-processing stage. This integration aims to preserve as many details as possible by leveraging normal and albedo features.

Feature 7

post-process
Tone mapping

For tone mapping, we referred to the article. We have implemented seven methods from this article, namely Reinhard tone mapping, Reinhard-Jodie tone mapping, Uncharted 2 tone mapping, ACES tone mapping, ACES tone mapping (worse fit), Extended Reinhard tonemapping, and Extended Reinhard Luminance tonemapping.
For our scene, we chose ACES tone mapping (worse fit).

Feature 8

post-process
Bloom

To implement bloom, we chose a 1-D Gaussian kernel. We first extracted the brightest pixels from our image, and then applied blur, first horizontally and then vertically. Our bloom postprocessing also has a choice to perform this blurring for a given amount of times to get a better blur effect. We then add this blurred image with our original image to finally get our postprocessed output.
For our scene, we used bloom specifically to add the natural glow around the lightsaber.

Third-party Assets

References