#include <CookTorranceBRDF.h>
Inheritance diagram for CookTorranceBRDF:
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 | |
CookTorranceBRDF (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 |
Reference: Watt A.: 3D Computer Graphics, p. 213-221, Addison-Wesley, Edinburg,2000.
Definition at line 19 of file CookTorranceBRDF.h.
|
|
Constructor Definition at line 29 of file CookTorranceBRDF.h. |
|
Reimplemented from SpecularBRDF. Definition at line 21 of file CookTorranceBRDF.h. References SpecularBRDF::_duplicate_attributes(). |
|
|
|
Albedo for importance sampling strategies.
Implements SpecularBRDF. Definition at line 54 of file CookTorranceBRDF.h. References PhongBRDF::albedo(). |
|
|
|
Duplicates the BRDF Implements SpecularBRDF. Definition at line 52 of file CookTorranceBRDF.h. |
|
|
|
Gets direction in global coords and returns its generating "random" numbers (i.e. the inverse function to importanceSample())
Implements SpecularBRDF. Definition at line 72 of file CookTorranceBRDF.h. |
|
Point sampling interface - importance sampling. This method gets two random numbers and preffered direction of random sample and selects amd returns random direction. Energy contribution gained from such random directions should be laer devided by average spectral reflectance (e.g. visitor.avgDiffuse() or visitor.avgSpecular()) in order to account for the fact that the reflectance should have used different values for individual spectrums (e.g. RGB)
Implements SpecularBRDF. Definition at line 61 of file CookTorranceBRDF.h. References PhongBRDF::importanceSample(). |
|
|
|
Computes and returns actual reflectance.
Implements SpecularBRDF. Definition at line 5 of file CookTorranceBRDF.cc. References BRDF::BAD_PARAMS, MatVisitor::diffuse(), MatVisitor::fresnelTerm(), MatVisitor::gaussianCoef(), BRDF::NL_NEGATIVE, BRDF::NONZERO_CONTRIB, BRDF::NV_NEGATIVE, and MatVisitor::roughness(). |
|
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 204 of file CookTorranceBRDF.cc. References BRDF::BAD_PARAMS, MatVisitor::diffuse(), MatVisitor::fresnelTerm(), MatVisitor::gaussianCoef(), BRDF::NONZERO_CONTRIB, BRDF::NV_NEGATIVE, MatVisitor::roughness(), 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 107 of file CookTorranceBRDF.cc. References BRDF::BAD_PARAMS, MatVisitor::diffuse(), MatVisitor::fresnelTerm(), MatVisitor::gaussianCoef(), BRDF::NONZERO_CONTRIB, MatVisitor::roughness(), 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(). |