Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

Computer Graphics Final Projects

December 2, 2025

1    Transient Rendering through Scattering Medium

Problem Description

Participating media are used to simulate materials ranging from fog, smoke, and clouds, over translucent materials such as skin or milk, to fuzzy structured substances such as woven or knitted cloth.  Participating media are usually attached to shapes in the scene.  When a shape marks the transition to a participating medium, it is necessary to provide information about the two media that lie at the interior and exterior of the shape.  This informs the renderer about what happens in the region of space surrounding the surface.  In many practical use cases, it is sufficient only to specify an interior medium and to assume the exterior medium (e.g., air), not to influence the light transport.

Transient rendering is proposed to simulate how the light propagates in the space. Instead of the traditional renderer, it assumes the light speed is limited.  Transient rendering for participating media helps to provide a new simulation tool to achieve a new sensing technology in extreme weather condition.

Goals and Deliverbles

Based on the code of Differentiable Transient Rendering linked below, realize a renderer in the FOG medium.  You can refer to any renderer or code for participating media.  For this project, deliver a series of transient images generated with the Differentiable Transient Renderer.

When working on this project, you will have to figure out how to embed the participating media into the given engine.

Resources

1. Differentiable Transient Rendering

2. Code

3. Mitsuba

2    Realize  Spectral Ray Tracing and Learn to Use  "Nvidia OptiX"

Problem Description

The current implementation of the raytracer cannot model dispersion and chromatic aberrations because its light model is not wavelength-dependent.  Currently, indices of refraction are constant rather than different for each wavelength. You can implement your code based on assignment 6.

Nvidia OptiX is a high-level GPU-accelerated ray-casting API.  If your computer supports Nvidia RTX, We strongly recommend you try it and coding based on this API instead of the code of assignment 6.

Goals and Deliverbles

Implement spectral ray tracing by tracing rays of different wavelengths sampled using the human eyes wavelength profile for each color (RGB). By modeling different indices of refraction based on those wavelengths for glass-like materials, we hope you to reproduce effects such as the dispersion of light through a prism, the changing colors based on the viewing angle for a lens on a reflective surface with a thin film (such as a DVD), as well as model chromatic aberrations present in real camera systems with lenses.  Additionally, it  would be best if you created wavelength-dependent bsdfs and lighting. We hope to model different temperature lights.

1.  Prism scene rendering

2.  Disk/bubbles scene rendering (Add different environment maps (potential source from Light Probe Library). Images from the light probe library are in HDR format, suitable for spectral ray-tracing since you have the more realistic spectrum distribution of each scene pixel).

3.  Correctly simulates chromatic aberration of different lenses.

4.  Compare rendered images with real photos we take of the objects (e.g., disk).

5.  Compare rendering under different temperature lights.

6.  Finally, we hope you deliver a synthesized image that harmoniously combines objects that best illustrate the effectiveness of our spectral ray tracer.  (e.g., gemstones, etc., suggestions on this would be helpful!)

7.  Optional: Add fog/volumetric scattering so that rainbows can be seen.

Tasks:

1.  Change lenstester to also include wavelength argument that the user can set.   (mainly for debugging purposes)

2.  Refactor code so that rays have a wavelength argument that can be passed in and checked as well as that functions that return Spectrums now return a single intensity value

3.  Change raytrace__pixel to ask for multiple ray samples for each color channel, then combine those color channels

4.  Change camera.generate ray to take in a color channel argument and sample that color channels wavelength distribution (Gaussian) to change the rays wavelength

5.  Change lens__cameras tracing through the lens to use the wavelength argument to change indices of refraction when tracing through the lens

6.  Change sample__L of lights to have a wavelength-dependent intensity to simulate different colors of lights (maybe initialize lights with a temperature argument and model them as ideal black bodies to get the intensities for each color)

7.  Rewrite BSDFs of colored objects to return a wavelength-dependent magnitude instead of a constant spectrum argument.

8.  Rewrite/write glass BSDF to have wavelength-dependent indices of refraction (similar code as lens__cameras tracing)

9.  Write a bubble/ thin-film interference BSDF that uses wavelength, thickness, and light to determine if the interference occurs (integer multiples of wavelength)

10.  Write new scene/dae files (using Blender )/mess with the parser to create a triangular prism would want a small area of light create a disk + reflective surface + transparent coating

Resources

1. AN INTRODUCTION TO NVIDIA OPTIX

2. Prisms and Rainbows: a Dispersion Model for Computer Graphics

3. Iridescent Surface Rendering with Per-channel Rotation of Anisotropic Microfacet Distribu-tion

4. Rendering Iridescent Colors of Optical Disks

5. Derive spectrum from RGB triple

6. soap bubbles 1

7. soap bubbles 2

Other useful links: [1] refractive index [2] refractive indices [3] glassner [4] hyperphysics [5] Morris, Nigel. "Capturing the Reflectance Model of Soap Bubbles." University of Toronto (2003)

3    Rerdering with Physical Lens

Problem Description

In this final project, you will implement a physically-based 3D rendering of a scene viewed through a realistic camera lens.  The core of the project is to design and implement an integrator that correctly simulates light transport from the scene, through a physical lens, onto the image sensor/film.

Goals and Deliverbles

To accelerate the task, you’d better to use ray-casting first and finally render a global illumina-tion result.  Or you can grab a certain piece of code block in our homework to help you complete this task.

Tasks:

1.  Use a physically motivated lens model(given below).

2.  Support depth of field effects (objects at different distances appear differently blurred).

3.  Support field of view effects (objects at different FoV appear differently blurred).

4.  Correctly integrate radiance along light paths using your custom integrator.

5.  Produce at least one high-quality image that clearly demonstrates the effect of the physical lens (e.g., focus plane vs.  foreground/background blur, bokeh shape, etc.).

Resources

1. Reference Lens Details

Final Note

You have achieved a milestone in Computer Graphics.   Here your task left is to make some fancy results and reports!  Computer Graphics is not only a science of producing graphical images with the aid of a computer but also a fancy art! Again, always be creative!