#include <LambertianBRDF.h>
Inheritance diagram for LambertianBRDF:
Public Types | |
enum | RetVal { NONZERO_CONTRIB = 1, BAD_PARAMS = 2, NL_NEGATIVE = 3, NV_NEGATIVE = 4, NL_OR_NV_NEGATIVE = 5, ZERO_CONTRIB = 6 } |
Public Member Functions | |
LambertianBRDF (void) | |
virtual RetVal | reflectance (const MatVisitor &visitor, const Vector3 *L, const Vector3 *V, const Vector3 *N, Vector3 &color) |
virtual RetVal | reflectanceVNL (const MatVisitor &visitor, const Vector3 *L, const Vector3 *V, const Vector3 *N, double NV, double NL, Vector3 &color) |
virtual RetVal | reflectanceNL (const MatVisitor &visitor, const Vector3 *L, const Vector3 *V, const Vector3 *N, double NL, Vector3 &color) |
virtual BRDF * | clone (void) const |
virtual double | albedo (const MatVisitor &visitor, const Vector3 &N, const Vector3 *V) const |
virtual void | importanceSample (const MatVisitor &visitor, const Vector3 &D, double r1, double r2, Vector3 &dir, double *pPDFVal) |
virtual Vector2 | dir2uv (const MatVisitor &visitor, const Vector3 &N, const Vector3 &D) const |
_isIsotropic (isotropic) | |
bool | diffuse (void) const |
bool | specular (void) const |
bool | isotropic (void) const |
bool | anisotropic (void) const |
Public Attributes | |
__pad0__: _isDiffuse(diffuse) | |
Protected Member Functions | |
virtual void | _duplicate_attributes (const BRDF &src) |
Protected Attributes | |
bool | _isDiffuse |
bool | _isIsotropic |
;
Definition at line 19 of file LambertianBRDF.h.
|
|
Constructor Definition at line 29 of file LambertianBRDF.h. |
|
Reimplemented from DiffuseBRDF. Definition at line 21 of file LambertianBRDF.h. References DiffuseBRDF::_duplicate_attributes(). |
|
|
|
Albedo for importance sampling strategies.
Implements DiffuseBRDF. Definition at line 106 of file LambertianBRDF.h. References MatVisitor::avgDiffuse(), and PI. |
|
|
|
Duplicates the BRDF Implements DiffuseBRDF. Definition at line 96 of file LambertianBRDF.h. |
|
|
|
Gets direction in global coords and returns its generating "random" numbers (i.e. the inverse function to importanceSample()).
Implements DiffuseBRDF. Definition at line 150 of file LambertianBRDF.h. References Hemisphere::dir2uvUniformly(). |
|
Point sampling interface - importance sampling. This method gets two random numbers and preffered direction of random sample and selects amd returns random direction.
Implements DiffuseBRDF. Definition at line 127 of file LambertianBRDF.h. References Hemisphere::sampleUniformly(). |
|
|
|
Computes and returns actual reflectance.
Implements DiffuseBRDF. Definition at line 41 of file LambertianBRDF.h. References MatVisitor::diffuse(). |
|
Computes and returns actual reflectance. This variant speeds up the computation using given precomputed dot-product of N and L
Implements DiffuseBRDF. Definition at line 86 of file LambertianBRDF.h. References MatVisitor::diffuse(). |
|
Computes and returns actual reflectance. This variant speeds up the computation using given precomputed dot-products of N, V and L
Implements DiffuseBRDF. Definition at line 63 of file LambertianBRDF.h. References MatVisitor::diffuse(). |
|
|
|
Contructor
|
|
Definition at line 32 of file BRDF.h. Referenced by BRDF::_duplicate_attributes(). |
|
Definition at line 33 of file BRDF.h. Referenced by BRDF::_duplicate_attributes(). |