#include <studentt.h>
Public Member Functions | |
| BBM_IMPORT_CONFIG (CONF) | |
| Value | eval (const Vec3d &halfway, Mask mask=true) const |
| Evaluate the NDF. | |
| Vec3d | sample (const Vec3d &, const Vec2d &xi, Mask mask=true) const |
| Sample the NDF. | |
| Value | pdf (const Vec3d &, const Vec3d &m, Mask mask=true) const |
| PDF of sampling the NDF. | |
| Value | G1 (const Vec3d &v, const Vec3d &m, Mask mask=true) const |
| Monodirectional shadowing and masking term. | |
| BBM_DEFAULT_CONSTRUCTOR (studentt) | |
| Default constructor. | |
Static Public Attributes | |
| static constexpr string_literal | name = NAME |
Static Private Member Functions | |
| static Value | F21 (const Value &z) |
| F21(z) (Eq. 23) | |
| static Value | F22 (const Value &gamma) |
| F22(gamma) (Eq. 23) | |
| static Value | F23 (const Value &gamma) |
| F23(gamma) (Eq. 23) | |
| static Value | F24 (const Value &z) |
| F24(z) (Eq. 23) | |
Class Attributes | |
| specular_roughness< symmetry_t< Symmetry, Value > > | roughness |
| bsdf_parameter< Value, bsdf_attr::SpecularParameter, 2.0, 40.0, 1.5+Constants::Epsilon()> | gamma |
| BBM_ATTRIBUTES (roughness, gamma) | |
/brief The StudentT Microfacet distribution
| CONF | = bbm configuration |
| Symmetry | = isotropic or anisotropic (Default = symmetry_v::Isoptric) |
| NAME | = ndf name (default = STDist) |
Implements: concepts::ndf
|
inline |
Default constructor.
| BBM_IMPORT_CONFIG | ( | CONF | ) |
|
inline |
Evaluate the NDF.
| halfway | = vector to eval the NDF for |
| mask | = enable/disbale lanes [default = true] |
|
inlinestaticprivate |
F21(z) (Eq. 23)
|
inlinestaticprivate |
F22(gamma) (Eq. 23)
|
inlinestaticprivate |
F23(gamma) (Eq. 23)
|
inlinestaticprivate |
F24(z) (Eq. 23)
|
inline |
Monodirectional shadowing and masking term.
| v | = incident/outgoing vector |
| m | = microfacet normal \param mask = enable/disable lanes |
There does not exist a closed form solution; use the same polynomial approximation as for Beckmann, except with a different 'a' value.
|
inline |
PDF of sampling the NDF.
| view | = view direction (ignored) |
| m | = sampled microfacet normal |
| mask | = enable/disable lanes [default = true] |
|
inline |
Sample the NDF.
| view | = view direction (ignored) |
| xi | = 2D uniform random variables in [0..1] range |
| Mask | = enable/disbale lanes |
| bsdf_parameter<Value, bsdf_attr::SpecularParameter, 2.0, 40.0, 1.5 + Constants::Epsilon()> gamma |
|
staticconstexpr |
| specular_roughness<symmetry_t<Symmetry,Value> > roughness |