No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
mitsuba Update measured.cpp (#1) Nov 5, 2018
python Python implementation improvements Oct 23, 2018
test separate namespace for RGB model Nov 14, 2018
.gitignore Python plotting code Oct 22, 2018 added BSD license, minor tweaks to Mitsuba plugin Nov 2, 2018
powitacq.h improved API comments Nov 14, 2018
powitacq.inl improved numerical stability Oct 21, 2018
powitacq_rgb.h improved API comments Nov 14, 2018
powitacq_rgb.inl made clipping feature optional Oct 24, 2018

BRDF Loader

This repository contains a self-contained implementation of evaluation and sampling code for the paper

An Adaptive Parameterization for Efficient Material Acquisition and Rendering

by Jonathan Dupuy and Wenzel Jakob

A Mitsuba plugin and Python routines for plotting are also provided.

Evaluation and sampling code

A header file implementation of the model can be found in powitacq.h / powitacq.inl (for spectral files) and powitacq_rgb.h / powitacq_rgb.inl (for RGB files) Note that only the interface part is enabled by default; to also compile the implementation, specify


before including this the corersponding .h file. The namespace powitacq refers to the internal name of the project ("acquisition using power iterations).

This proof-of-concept implementation involves some inefficiencies that should be removed in a "production" setting.

  1. The spectral verision returns captured spectrum using a std::valarray, which causes dynamic memory allocation at every BRDF evaluation.

    In practice, the rendering system may only want to evaluate a fixed subset of the wavelengths, which could furthermore be stored on the stack.

  2. The implementation doesn't rely on vectorization to accelerate simultaneous evaluation at multiple wavelengths.

Python loader

The python directory contains functionality to load and save .bsdf files via Python/NumPy. The file loads an RGB material file, plots the VNDF and slice data, and then writes it back.