|
| | 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.
|
| |
template<typename NDF, typename MaskingShadowing, typename Fresnel, auto NormalizationFactor = microfacet_n::Unnormalized,
string_literal NAME = "microfacet">
requires concepts::matching_config<NDF, MaskingShadowing, Fresnel> && concepts::ndf<NDF> && concepts::maskingshadowing<MaskingShadowing> && std::default_initializable<NDF> && concepts::fresnel<Fresnel>
struct bbm::microfacet< NDF, MaskingShadowing, Fresnel, NormalizationFactor, NAME >
General microfacet BRDF model.
- Template Parameters
-
| NDF | = microfacet normal distribution (concepts::ndf && std::default_initializable) |
| MaskingShadowing | = masking and shadowing function (concepts::maskingshadowing) |
| Fresnel | = fresnel implementation (requires concepts::fresnel) |
| NormalizationFactor | = see microfacet_n |
| NAME | = model name |
NDF, MaskingShadowing, and Fresnel must also meet config::matching_config
Implements: concepts::bsdfmodel