|
| | BBM_IMPORT_CONFIG (CONF) |
| |
| 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 and out direction.
|
| |
| 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 diffuse BSDF given a direction and two random variables.
|
| |
| Value | pdf (const Vec3d &in, const Vec3d &out, BsdfFlag component=bsdf_flag::All, unit_t unit=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 (he_base) |
| | Default Constructor.
|
| |
|
| constexpr Value | S (const Vec3d &in, const Vec3d &out, Mask mask=true) const |
| | Shadowing term.
|
| |
| constexpr Value | S1 (const Vec3d &v, Mask mask=true) const |
| | Mono-directional shadowing term.
|
| |
| constexpr Value | G (const Vec3d &in, const Vec3d &out, Mask mask=true) const |
| | Compute the Geometrical factor.
|
| |
| constexpr Value | sigma (const Vec3d &in, const Vec3d &out, Mask mask=true) const |
| | Compute the effective surface roughness.
|
| |
| constexpr Spectrum | D (const Vec3d &in, const Vec3d &out, Mask mask=true) const |
| | Distribution Function.
|
| |
template<typename CONF, typename Fresnel = fresnel::complex<CONF, Spectrum_t<CONF>>,
he_eq25 EQ25 = he_eq25::WithoutExp,
he_eq78 EQ78 = he_eq78::Regular, size_t NewtonRaphsonSteps = 4, size_t TaylorTerms = 40, bool AdaptiveTaylor = true,
literal RoughApproxThreshold = std::numeric_limits<Scalar_t<CONF>>::max(),
string_literal NAME = "He">
requires concepts::config<CONF> && concepts::fresnel<Fresnel> && concepts::matching_config<CONF, Fresnel>
class bbm::he_base< CONF, Fresnel, EQ25, EQ78, NewtonRaphsonSteps, TaylorTerms, AdaptiveTaylor, RoughApproxThreshold, NAME >
The directional specular component of the He et al. BSDF model.
- Template Parameters
-
| CONF | = bbm configuration |
| Fresnel | = fresnel implementation (requires concepts::fresnel); default = fresnel::complex |
| EQ25 | = determines whether or not to include an extra scaling factor in Eq 25. (Default = he_eq25::WithoutExp) |
| EQ78 | = determines which implementation variant to follow for Eq
- ( Default=he_eq78::Regular)
|
| NewtonRaphsonSteps | = number of Newton Raphson steps to take to compute the apparent roughness (Default=4) |
| TaylorTerms | = number of terms in the Taylor expansion for Eq. 78. (Default=40) |
| AdaptiveTaylor | = true if the Talylor approximation should be cut of if the change with additional terms is minimal. If false, all 'TaylorTerms' terms will be computed. (Default = true). |
| RoughApproxThreshold | = 'g' threshold at which the use an approximation instead of the Taylor series. Both solutions are linearly blended within g and g+1. (Default=disabled). |
| NAME | = model name (default = "He") |
Note: the default settings best approximate the original formulation in He et al. 1991
Note: this only implements the directional specular component
Implements: concepts::bsdfmodel