Home

Awesome

libbsdf

Linux

Overview

libbsdf is a C++ library for BSDF, BRDF, and BTDF. libbsdf provides basic functions: file IO, interpolation, data structure and so on. Eigen 3 is used for arrays, vectors, and matrices. libbsdf is licensed under the terms of the Mozilla Public License, version 2.0. See the LICENSE file.

Building libbsdf

C++ compiler that supports C++17 is required. CMake is used as the build system. The search path for Eigen 3 is set through CMake variables: Eigen3_DIR. To enable the fitting function to reflectance models, enable LIBBSDF_ENABLE_FITTING and set the Ceres Solver path to the Ceres_DIR variable.

Data structure

File reader

FormatExtensionMeasured Data
Surface Scattering Distribution Data.ssdd
Integra Diffuse Distribution.ddr, .ddt
Integra Specular Distribution.sdr, .sdt
Zemax BSDF.bsdfRPC Photonics
LightTools BSDF.bsdf
ASTM E1392-96(2002).astmCornell University
MERL BRDF.binaryMERL

File writer

FormatExtension
Surface Scattering Distribution Data.ssdd
Integra Diffuse Distribution.ddr, .ddt