Superclass of all bidirectional scattering distribution functions. More...
#include <bsdf.h>
Public Member Functions | |
virtual Color3f | sample (BSDFQueryRecord &bRec, const Point2f &sample) const =0 |
Sample the BSDF and return the importance weight (i.e. the value of the BSDF * cos(theta_o) divided by the probability density of the sample with respect to solid angles). More... | |
virtual Color3f | eval (const BSDFQueryRecord &bRec) const =0 |
Evaluate the BSDF for a pair of directions and measure specified in code bRec. More... | |
virtual float | pdf (const BSDFQueryRecord &bRec) const =0 |
Compute the probability of sampling bRec.wo (conditioned on bRec.wi ). More... | |
virtual EClassType | getClassType () const override |
Return the type of object (i.e. Mesh/BSDF/etc.) provided by this instance. | |
virtual bool | isDiffuse () const |
Return whether or not this BRDF is diffuse. This is primarily used by photon mapping to decide whether or not to store photons on a surface. | |
Public Member Functions inherited from NoriObject | |
virtual | ~NoriObject () |
Virtual destructor. | |
virtual void | addChild (NoriObject *child) |
Add a child object to the current instance. More... | |
virtual void | setParent (NoriObject *parent) |
Set the parent object. More... | |
virtual void | activate () |
Perform some action associated with the object. More... | |
virtual std::string | toString () const =0 |
Return a brief string summary of the instance (for debugging purposes) | |
void | setIdName (const std::string &name) |
Allow to assign a name to the object. | |
const std::string & | getIdName () const |
Additional Inherited Members | |
Public Types inherited from NoriObject | |
enum | EClassType { EScene = 0 , EMesh , ETexture , EBSDF , EPhaseFunction , EEmitter , EMedium , ECamera , EIntegrator , ESampler , ETest , EReconstructionFilter , EClassTypeCount } |
Static Public Member Functions inherited from NoriObject | |
static std::string | classTypeName (EClassType type) |
Turn a class type into a human-readable string. | |
Protected Attributes inherited from NoriObject | |
std::string | m_idname |
Superclass of all bidirectional scattering distribution functions.
|
pure virtual |
Evaluate the BSDF for a pair of directions and measure specified in code bRec.
bRec | A record with detailed information on the BSDF query |
Implemented in Microfacet, Diffuse, Mirror, and Dielectric.
|
pure virtual |
Compute the probability of sampling bRec.wo
(conditioned on bRec.wi
).
This method provides access to the probability density that is realized by the sample() method.
bRec | A record with detailed information on the BSDF query |
Implemented in Microfacet, Diffuse, Mirror, and Dielectric.
|
pure virtual |
Sample the BSDF and return the importance weight (i.e. the value of the BSDF * cos(theta_o) divided by the probability density of the sample with respect to solid angles).
bRec | A BSDF query record |
sample | A uniformly distributed sample on |
Implemented in Diffuse, Dielectric, Microfacet, and Mirror.