|
| | BBM_IMPORT_CONFIG (CONF) |
| |
| Spectrum | eval (const Vec3d &in, const Vec3d &out, BsdfFlag component=bsdf_flag::All, unit_t unit=unit_t::Radiance, Mask mask=true) const |
| | Evaluate the A*baseeval.
|
| |
| Spectrum | reflectance (const Vec3d &out, BsdfFlag component=bsdf_flag::All, unit_t unit=unit_t::Radiance, Mask mask=true) const |
| | Return albedo*basereflectance.
|
| |
| | BBM_DEFAULT_CONSTRUCTOR (lowmicrofacet) |
| | Default constructor.
|
| |
| BsdfSample | sample (const Vec3d &out, const Vec2d &xi, BsdfFlag component=bsdf_flag::All, unit_t unit=unit_t::Radiance, Mask mask=true) const |
| | Sample the microfacet BSDF given a direction and two random variables.
|
| |
| Value | pdf (const Vec3d &in, const Vec3d &out, BsdfFlag component=bsdf_flag::All, unit_t=unit_t::Radiance, Mask mask=true) const |
| | Compute the pdf given an in and out direction.
|
| |
| | BBM_IMPORT_CONFIG (NDF) |
| |
| Spectrum | eval (const Vec3d &in, const Vec3d &out, BsdfFlag component=bsdf_flag::All, unit_t=unit_t::Radiance, Mask mask=true) const |
| | Evaluate the BSDF for a given in-out direction pair.
|
| |
| BsdfSample | sample (const Vec3d &out, const Vec2d &xi, BsdfFlag component=bsdf_flag::All, unit_t unit=unit_t::Radiance, Mask mask=true) const |
| | Sample the microfacet BSDF given a direction and two random variables.
|
| |
| Value | pdf (const Vec3d &in, const Vec3d &out, BsdfFlag component=bsdf_flag::All, unit_t=unit_t::Radiance, Mask mask=true) const |
| | Compute the pdf given an in and out direction.
|
| |
| Spectrum | reflectance (const Vec3d &out, BsdfFlag component=bsdf_flag::All, unit_t=unit_t::Radiance, Mask mask=true) const |
| | Return the (approximate) hemispherical reflectance of the BSDF.
|
| |
| | BBM_DEFAULT_CONSTRUCTOR (microfacet) |
| | Default constructor.
|
| |
| | BBM_ATTRIBUTES (reflection::attributes(ndf), eta) |
| |
template<typename CONF, auto NormalizationFactor = microfacet_n::Cook,
string_literal NAME = "LowMicrofacet">
requires concepts::config<CONF>
class bbm::lowmicrofacet< CONF, NormalizationFactor, NAME >
The Low et al. Microfacet BRDF model.
- Template Parameters
-
| CONF | = bbm configuration |
| NormalizationFactor | = see below (Default: normalization_v::Cook) |
| NAME= | model name (default = LowMicrofacet) |
The Low et al. Microfacet BSDF model is a specialization microfacet that uses an unnormalized scale 'A'.
Both Low et al's supplemental document as well as the paper (Eq. 15) do not list any normalization factor, which makes sense since 'A' is not normalized. This is the default behavior of this implementation. However, the MERL-MIT BRDF fits listed in Low et al.'s supplemental document includes an additional (incorrect) normalization factor of 'Pi'
Implements: concepts::bsdfmodel