Abstract

A grueling journey through the snowy wilderness comes to a momentary halt as the day begins to fade. With a set up camp and a crackling fire, the weight of your travels begins to melt away, you let out a sigh. Finally, you can rest and bask in the warmth of the fire and the setting sun.

Winter has never felt this warm

Process Description

Motivation

I knew from the start that this scene was going to be more of a technical showcase, as I had planned to implement certain features from the get-go (i.e. subsurface scattering).
The choice of a winter scene and a POV shot reflect this, showcasing the physical effect on both skin and snow.

Another big consideration however was also the artistic composition and storytelling. Depicting a struggle, juxtaposing feelings and sensations was important to invoke (or try to) a certain emotion in the viewer. The feeling of tiredness after a hike, though not common, isn't something unimaginable to most. The warmth of a fire contrasting with the cold of winter is also something most people can relate to, and I wanted to capture that feeling.

Initial Sketch
Initial Sketch

The initial sketch was done in a very rough manner, just to get a general idea of the composition and elements I wanted to include in the scene. I managed to get some feedback regarding the scene as well. In particular, the addition of the breath and the volumetric bonfire were additions that came from that feedback session.

Final Scene
Final Scene

As the final render shows, the scene is somewhat different from the original sketch. While the main ideas are still present, the availability of free assets and time limitations meant that some compromises had to be made. Mainly, the sunset HDRI has the sun higher in the sky than originally intended, the character pose is also different to show a more realistic posture.

Technical Details

Resolution and SPP

The final render was rendered at a resolution of 2560x1440 with 2048 samples per pixel (SPP)

Rendering time

The total rendering time for the final image was approximately 6h 30m.
4h 10m: path tracer
1h 10: normal AOV
1h 10: albedo AOV

Rendering Hardware

Rendering was done on a Ryzen 5 9600x processor.
32GB DDR5 RAM

Asset attributions

All assets used in this project are free and properly attributed and credited as per their licenses. Find out more here.

Implemented Features

Below are some of the features implemented in the renderer, along with a brief description and related images (or image comparisons).
Click the 'Learn More' button to go to a page with more details regarding the implementation, comparison pictures, and implementation process.

Feature Categories

Subsurface Scattering

Subsurface scattering is a mechanism of light transport in which light penetrates the surface of a translucent object, interacts (scatters) inside it, and exits the surface at a different point. This effect is crucial for rendering realistic skin, wax, marble, and other materials where light diffusion beneath the surface is significant.

Advanced Homogeneous Volumes

The assumptions for volumes made during the assignments were somewhat restrictive in the accurate simulation of light transport within homogeneous media. This feature breaks those walls by utilizing physically accurate absorption and scattering coefficients, allowing for more accurate light transport. Emissive volumes were also added (pictures for this in the proper page).

Heterogeneous Volumes

Volumes in real life often have varying densities and properties that affect how light interacts with them. This feature aims to simulate such complex light transport within heterogeneous media by using the OpenVDB and NanoVDB libraries.

Area Lights

Area lights allow for more realistic lighting by simulating light sources with a defined shape and size, resulting in softer shadows and more natural light distribution. Compared to utilizing emissive materials, being able to sample these light sources directly reduces noise and improves convergence in scenes with significant area light contributions.

Multiple Importance Sampling

When utilizing lights that can be both directly sampled (NEE) and intersected (sampling a direction from the BSDF), dealing with double-counting can increase variance significantly if not handled properly. This feature implements the power heuristic MIS strategy to reduce variance when both sampling strategies are used.

Volume Lights

Light contribution from emissive volumes rely on BSDF sampled directions to be properly accounted for in the final render. This feature aims to allow for area-light like sampling for heterogeneous volumes. However, given that this feature was experimental and is actually an ongoing research area, its results aren't very good.

Improved Environment Sampling

Environment maps were previously only intersectable via the BSDF sampling strategy, which can lead to high variance in scenes where the environment is the main light source. This feature implements a method to directly sample the environment map based on its luminance distribution, allowing for better sampling of important areas. This is very useful in this scene, where the sunset HDRI is the main light source.

Low Discrepancy Sampling

The independent sampler used in the assignments can lead to clustering and uneven distribution of samples, resulting in higher variance and noise in the rendered image. This feature implements a low-discrepancy sampler (Halton sequence) to provide a more uniform sample distribution, reducing variance and improving convergence rates.

Extended Principled BSDF

The Principled BSDF implemented in the assignments was limited to diffuse, metallic and specular lobes. This feature extends the BSDF to include a sheen lobe, adding non-lambertian models to the diffuse lobe, and adding thin-walled with translucency to emulate subsurface scattering materials on surfaces.

Alpha Masking

Alpha masking allows for the use of textures with transparency information to create complex surface details without the need for additional geometry.

Normal Mapping

Normal mapping is a technique used to simulate high-resolution surface details on low-polygon models by altering the surface normals during lighting calculations.

Denoiser Post Processing (OIDN)

To further reduce noise in the final render, this feature integrates the Open Image Denoise (OIDN) library as a post-processing step. The feature utilizes auxiliary AOVs (albedo and normal) to guide the denoising process, preserving important details while effectively reducing noise.

Bloom Post Processing

Bloom is a post-processing effect that simulates the phenomenon of light bleeding around bright areas in an image, creating a glow that enhances the perception of brightness and realism.

Luminance Tone Mapping Post Processing

The tone mapping implemented in the assignments was a simple reinhard operator, which can lead to desaturated images and loss of detail in both highlights and shadows. This feature implements a more advanced luminance-based tone mapping operator that better preserves details and color saturation across a wider range of luminance values.

Asset Attributions

Here is a list of all the assets used in this project, along with their respective licenses and attributions.*

  • Character: "Hiker" by doctortex. Licensed under CC BY 4.0. Link
  • Terrain: "Rock terrain with melting snow" by Lassi Kaukonen. Licensed under CC BY 4.0. Link
  • Bonfire: "Outdoor stone bonfire" by Paweł Wałasiewicz. Link
  • Backpack: "Military Tactical Backpack" by Liam3D. Licensed under CC BY 4.0. Link
  • Tent: "Tent" by pushmatrix. Licensed under CC BY 4.0. Link
  • Sleeping Bag: "Sleeping Bag" by Woh. Licensed under CC BY 4.0. Link
  • Trees and Bushes: "Snow Pine Tree and Bush Pack LOWPOLY" by EFX. Licensed under CC BY 4.0. Link
  • Mountains: "Snow Mountain" by hkp941111. Licensed under CC BY 4.0. Link
  • Fire VDB: "Small Camp Fire" from JangaFX EmberGen free VDBs. Link
  • Sunset HDRI "Table Mountain 2 (Pure Sky)" HDRI from PolyHaven. Link

*Assets used for feature showcases are attributed on their respective pages