#include <PhongBRDF.h>
Inheritance diagram for PhongBRDF:
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 | |
PhongBRDF (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 24 of file PhongBRDF.h.
|
|
Constructor Definition at line 34 of file PhongBRDF.h. |
|
Reimplemented from SpecularBRDF. Definition at line 26 of file PhongBRDF.h. References SpecularBRDF::_duplicate_attributes(). |
|
|
|
Albedo for importance sampling strategies.
Implements SpecularBRDF. Definition at line 108 of file PhongBRDF.h. References MatVisitor::avgSpecular(), MatVisitor::intRoughness(), and PI. Referenced by CookTorranceBRDF::albedo(), and BlinnBRDF::albedo(). |
|
|
|
Duplicates the BRDF Implements SpecularBRDF. Definition at line 96 of file PhongBRDF.h. |
|
|
|
Gets direction in global coords and returns its generating "random" numbers (i.e. the inverse function to importanceSample()).
Implements SpecularBRDF. Definition at line 157 of file PhongBRDF.h. References Hemisphere::dir2uvPriorToPoweredZenith(), and MatVisitor::intRoughness(). Referenced by BlinnBRDF::dir2uv(). |
|
Point sampling interface - importance sampling. This method gets two random numbers and preffered direction of random sample and selects amd returns random direction.
Implements SpecularBRDF. Definition at line 133 of file PhongBRDF.h. References MatVisitor::intRoughness(), and Hemisphere::samplePriorToPoweredZenith(). Referenced by CookTorranceBRDF::importanceSample(), and BlinnBRDF::importanceSample(). |
|
|
|
Computes and returns actual reflectance.
Implements SpecularBRDF. Definition at line 36 of file PhongBRDF.h. References MatVisitor::intRoughness(), and MatVisitor::specular(). |
|
Computes and returns actual reflectance. This variant speeds up the computation using given precomputed dot-product of N and L
Implements SpecularBRDF. Definition at line 77 of file PhongBRDF.h. References MatVisitor::intRoughness(), and MatVisitor::specular(). |
|
Computes and returns actual reflectance. This variant speeds up the computation using given precomputed dot-products of N, V and L
Implements SpecularBRDF. Definition at line 57 of file PhongBRDF.h. References MatVisitor::intRoughness(), and MatVisitor::specular(). |
|
|
|
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(). |