The Oren-Nayar BSDF microfacet model for diffuse surfaces. More...
#include <orennayar.h>
Public Member Functions | |
| 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 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 &, 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 (orennayar) | |
| Default constructor. | |
Public Attributes | |
| BBM_BSDF_FORWARD | |
Static Public Attributes | |
| static constexpr string_literal | name = NAME |
| diffuse_scale< Spectrum > | albedo |
| Class Attributes. | |
| diffuse_roughness< Value > | roughness |
| BBM_ATTRIBUTES (albedo, roughness) | |
The Oren-Nayar BSDF microfacet model for diffuse surfaces.
| CONF | = bbm configuration \tpatam NAME = name of the BSDF model (Default: 'OrenNayar') |
Implements: concepts::bsdfmodel
|
inline |
Default constructor.
| BBM_IMPORT_CONFIG | ( | CONF | ) |
|
inline |
Evaluate the BSDF for a given in and out direction.
| in | = incident direction |
| out | = outgoing direction |
| component | = which reflectance component to eval |
| unit | = unit of computation (ignored) |
| mask | = masking of lanes (e.g., for Packet eval) |
|
inline |
Compute the pdf given an in and out direction.
| in | = the incoming (sampled) direction |
| out | = the outgoing (given) direction |
| component | = which reflectance component was sampled |
| unit | = unit of computation (ignored) |
| mask | = masking of lanes |
|
inline |
Return the (approximate) hemispherical reflectance of the BSDF.
| out | = the outgoing direction |
| component | = which reflectance component to eval |
| unit | = unit of computation (ignored) |
| mask | = masking of lanes |
|
inline |
Sample the BSDF given a direction and two random variables.
| out | = outgoing direction |
| xi | = two random variables stored in a Vec2d |
| component | = which reflectance component to sample |
| unit | = unit of computation (ignored) |
| mask | = masking of lanes. |
Approximate sampling by using the same sampling as Lambertian.
| diffuse_scale<Spectrum> albedo |
Class Attributes.
| BBM_BSDF_FORWARD |
|
staticconstexpr |
| diffuse_roughness<Value> roughness |