Computer Graphics Rendering Competition

Introduction

Motivation

Pixar-style storytelling and the feeling of a “small moment with a big meaning” were the main inspiration. The goal was to show curiosity and ambition through a child’s point of view, with a workshop that feels playful but still suggests a deeper story underneath.

Artistic intention

The composition is built to pull attention to the child first, then slowly reveal story clues in the environment. Warm lighting inside the booth creates comfort, while the darker surroundings add secrecy and contrast. Color and depth are used to guide the eye and keep the scene readable without losing the mood.

Story

After school, when everything gets quiet, a child opens a hidden repair booth. With two robot companions nearby, broken machines get fixed and old parts become useful again. Behind the playful mess, sketches and posters quietly suggest a bigger invention in progress. Finding a strange toolbox becomes the turning point, as if this small booth is only the beginning.

Reference / Inspiration

Reference image

Why this reference?

The reference helped set the overall mood: a small repair booth filled with fun clutter and mechanical details. The strong contrast between warm interior light and a darker industrial space was a key idea to keep. The final scene focuses more on the child’s expression and adds extra story hints, like sketches and posters, to suggest a larger project beyond the frame.

Concepts & Modeling

Blender Model

Blender model screenshot

Early Lighting Concepts and Intermediate Steps

Slideshow image
Early Lighting Concepts and Intermediate Steps

Features in Scene

Selected feature: None
Final render with feature locations

Select a Feature

Features

Alpha masking without
alpha_without.jpg
Without
Alpha masking with
alpha_with.jpg
With

Alpha Masking

Adds “cutout transparency” using an alpha texture. This makes thin details like leaves, grills, or holes possible without adding extra geometry, so scenes stay lighter and faster.

Code changes / additions

  • src\core\instance.cpp
  • src\core\instance.hpp
  • include\lightwave\image.hppp
Normal mapping without
normal_without.jpg
Without
Normal mapping with
normal_with.jpg
With

Normal Mapping

Fakes small surface bumps using a texture that modifies shading normals. This adds detail (scratches, bricks, fabric) without increasing mesh complexity.

Code changes / additions

  • src\core\instance.cpp
  • src\core\instance.hpp
Clear glass
roughdielectric_without.jpg
Clear
Frosted glass
roughdielectric_with.jpg
Frosted

Rough Dielectric

Simulates frosted / micro-rough glass where refraction gets blurred and highlights spread out. This makes glass feel less “perfect” and more realistic.

Code changes / additions

  • src\bsdfs\roughdielectric.cpp
SSS without
sss_without.jpg
Without
SSS with
sss_with.jpg
With

Subsurface Scattering

Models light traveling under the surface and exiting somewhere else. This creates a soft “glow” and gentle shading that is typical for skin, wax, paper, or similar materials.

Code changes / additions

  • src\bssrdf\dipole_bssrdf.cpp
  • include\lightwave\bssrdf.hpp
  • include\lightwave\instance.hpp
  • src\core\math.cpp
  • src\core\math.hpp
  • include\lightwave\registry.hpp
  • include\lightwave\color.hpp
  • include\lightwave\core.hpp
Homogeneous volume without
vol_homo_without.jpg
Without
Homogeneous volume with
vol_homo_with.jpg
With

Advanced Homogeneous Volumes

Improves fog/smoke by supporting colored absorption/scattering and (optionally) emission. This makes volume lighting richer and enables effects like colored shadows and depth cues.

Code changes / additions

  • src\shapes\volume.cpp
  • src\integrators\pathtracer.cpp
  • src\integrators\mis_pathtracer.cpp
  • include\lightwave\math.hpp
Volume+surface without
vol_surface_without.jpg
Without
Volume+surface with
vol_surface_with.jpg
With

Volume with Surface BSDF

Couples a participating medium with a boundary material. This allows surfaces to still show highlights and reflections while the interior behaves like a volume.

Code changes / additions

  • src\shapes\volume.cpp
  • src\core\math.cpp
MIS without
mis_without.jpg
Without
MIS with
mis_with.jpg
With

MIS Path Tracer

Combines BSDF sampling and direct light sampling at every bounce, then weights both contributions. This reduces noise and avoids having to “pick the better strategy” manually.

Code changes / additions

  • src\integrators\mis_pathtracer.cpp
Noisy
denoise_before.jpg
Noisy
Denoised
denoise_after.jpg
Denoised

Image Denoising

Removes Monte Carlo noise while trying to keep edges and detail. This helps produce clean results at lower sample counts, especially in dark or indirect-lit regions.

Code changes / additions

  • src\postprocesses\denoise.cpp
Pinhole
thinlens_before.jpg
Pinhole
Thin lens
thinlens_after.jpg
Thin lens

Thin Lens Camera

Simulates depth of field by sampling a lens aperture instead of a single pinhole. This creates realistic focus blur and helps guide attention to the subject.

Code changes / additions

  • src\cameras\perspective.cpp
Without area light
arealight_before.jpg
Without
With area light
arealight_after.jpg
With

Basic Area Light

Adds sampling for lights with actual size, which produces softer, more realistic shadows and reduces noise compared to “hoping to hit the emitter by chance.”

Code changes / additions

  • src\lights\area.cpp
  • src\shapes\sphere.cpp
  • src\shapes\circle.cpp (Added a new shape "Circle")

Post-Processing

Post Effects

Post process preview
Original

Code Addition

  • Bloom: src\postprocesses\bloom.cpp
  • Colorgrade: src\postprocesses\colorgrade.cpp
  • Denoise: src\postprocesses\denoise.cpp
  • Vignette: src\postprocesses\vignette.cpp
  • Exposure: src\postprocesses\exposure.cpp

Statistics

Samples per pixel (spp)
1024
Render time
2hrs 46mins
Resolution
2160 × 2160
Number of lights
19 Point, 5 Area
Triangles
2,595,509

Renderer settings

  • Integrator: MIS path tracer
  • Max depth: 10
  • Denoiser: On (Intel OIDN)

Hardware

  • CPU: AMD Ryzen AI 9 HX 370 (12 Cores, 24 Threads)
  • RAM: 16 Gb
  • OS: Windows 11

Assets

Asset Author License Source
Vintage Bulbs Angel Ramirez - Link
Plier Kroko.blend CC Attribution Link
Canvas with Easel projectkaizen CC Attribution Link
Filthy bar towel Trey M. CC Attribution Link
Red Bike stealth86 CC Attribution Link
Backpack yesithlive Royalty Free License Link
Humanoid White Robot texture - Commercial License Link
Cogwheel texture - Commercial License Link
Electrical Junction Device rickmaolly CC Attribution Link
Wrench - Royalty Free License Link
Back Wall Blue texture - - Link
Floor texture - - Link
Floor Repair Guide Guy in a Poncho CC Attribution Link
Air Duct - Royalty Free License Link
Drain Ellis Rogers-Byrne CC Attribution Link
Oil Spill texture - - Link
Blue Bucket - Standard License Link
Tools - Link
Tool Box PropsLib Royalty Free License Link
Wooden Box JosiahJuice CC Attribution Link
Tray JYModels CC Attribution Link

Disclaimer: All the base models have been modified and re-textured.

AI Usage: For models of the Pixar Character, the Repair Booth and the two Robots, Meshy AI has been used in accordance with the guidelines (Project_info: 2.2 "All assets must be publicly available for free") of using FREE assets. ( Meshy AI Free Education Plan)

Challenges

Biggest technical challenge

For MIS, the hardest part was handling many special cases inside the integrator. Even after extending the BSDF and direct light sampling code with a PDF value, several edge cases still needed careful logic to keep the weighting correct and stable. For subsurface scattering, the first difficulty was understanding the heavy math and edge cases in the provided paper. The second difficulty was implementation: it required introducing a new BSSRDF structure and integrating a new architecture into Lightwave.

Biggest artistic challenge

The main artistic challenge was lighting. The goal was to keep the scene warm and readable while still feeling secret and cinematic. It took experimentation to make the booth feel lively and inviting without flattening the contrast or losing focus.