SVBRDF Mapper

Video can be looped by right-clicking.

This project was done at Aalto University under the supervision of Jaakko Lehtinen. Source code is not available.

Motivation

A paper by Aittala et al. (2015) provides a way of capturing SVBRDF parameters of a repetetive surface using a mobile phone camera.

Unfortunately, the resulting parameter format is non-standard and unsupported by common rendering software, such as Unity or Blender. This makes the material capture difficult to use in a content creation pipeline.

Illustration of the motivation

Click on the image to view the original.

The goal of this project is therefore to find a way to convert the custom BRDF parameters to a standard set of parameters, in our case more specifically to Anisotropic GGX parameters.

Results

For each material separately, our program finds Anisotropic GGX parameters which give an appearance that is sufficiently close to the reference. These parameters can be directly imported into Blender and used with a correctly configured Anisotropic GGX shader.

Upper figure shows a rendering of optimized Anisotropic GGX parameters. Lower figure shows the Aittala reference. Click on one of the images to view the original.

Figure on the left shows a rendering of optimized Anisotropic GGX parameters. Figure on the right shows the Aittala reference. Click on one of the images to view the original.

Also see the video at the top of this page.

Technical Details

The core of the program is implemented in TensorFlow and is based on non-linear optimization of the BRDF parameters. For each material, the optimization is run separately in order to ensure the best possible matching is found. Here is an overview of the whole process:

Illustration schema of the implementation.

Click on the image to view the original.

The main problem is that the mapping cannot be uniquely determined - for one set of Aittala parameters there can be many sets of Anisotropic GGX parameters which give the same appearance under a given lighting condition. We solve the problem by trying to match the parameters under many lighting conditions at once. Here is a more thorough breakdown of our approach:

Here is a visualization of the optimization process:

These images have been rendered by using a fixed, centered point light and Anisotropic GGX parameters at various epochs.