#include <ibdf.h>
Inheritance diagram for toxic::IBDF:

Public Member Functions | |
| virtual | ~IBDF () |
| virtual bool | IsDiffuse () const |
| virtual bool | IsSpecular () const |
| virtual sheep::Real | Evaluate (const Context &context, const sheep::Vector3 &incoming, const sheep::Vector3 &outgoing) const=0 |
| virtual sheep::Real | EvaluateSpecular (const Context &context, const sheep::Vector3 &incoming, sheep::Vector3 *outgoing) const |
| virtual void | Sample (const Context &context, const sheep::Vector3 &incoming, sheep::Vector3 *outgoing, sheep::Real *prob, sheep::Real *value) const |
| virtual sheep::Real | ComputeScatteringProbability (const sheep::Vector3 &incoming, const sheep::Vector3 &outgoing) const |
| virtual sheep::Real | ComputeReflectance (const Context &context) const |
| virtual sheep::Real | ComputeReflectance (const Context &context, const sheep::Vector3 &incoming) const |
Incoming and outgoing directions are both always expressed in the upper part of the unit hemisphere, and they are always unit-length.
Definition at line 42 of file ibdf.h.
|
|
|
|
||||||||||||
|
Computes and returns the directional hemispherical reflectance. The incoming direction is expressed in local space. Note: this method must be overridden if the IsSpecular() method is defined to return true.
Reimplemented in toxic::BSDF, toxic::LambertianBRDF, and toxic::PerfectSpecularBRDF. Definition at line 37 of file ibdf.cpp. References IsSpecular(), sheep::Vector3::IsUnitLength(), and sheep::Vector3::m_y. |
|
|
Computes and returns the hemispherical hemispherical reflectance. Note: this method must be overridden if the IsSpecular() method is defined to return true.
Reimplemented in toxic::BSDF, toxic::LambertianBRDF, and toxic::PerfectSpecularBRDF. Definition at line 30 of file ibdf.cpp. References IsSpecular(). |
|
||||||||||||
|
Computes the probability of scattering from 'incoming' direction to 'outgoing' direction. Both incoming and outgoing directions are expressed in local space. Notes: (1) this method must be overridden if the Sample() method is overridden, (2) this method must return 0.0 if the IsSpecular() method is defined to return true. Reimplemented in toxic::BSDF, and toxic::PerfectSpecularBRDF. |
|
||||||||||||||||
|
Evaluates the function. Both the incoming and outgoing directions are expressed in local space. Implemented in toxic::BSDF, toxic::LambertianBRDF, and toxic::PerfectSpecularBRDF. Referenced by toxic::Renderer::compute_direct_illumination(), and toxic::PhotonMap::ComputeRadiance(). |
|
||||||||||||||||
|
Reimplemented in toxic::BSDF, and toxic::PerfectSpecularBRDF. Definition at line 138 of file ibdf.h. Referenced by toxic::Renderer::compute_specular_reflections(), and toxic::BSDF::EvaluateSpecular(). |
|
|
Reimplemented in toxic::BSDF, and toxic::PerfectSpecularBRDF. Definition at line 46 of file ibdf.h. Referenced by toxic::Renderer::compute_caustics(), toxic::Renderer::compute_direct_illumination(), toxic::GlobalPhotonTracer::trace_photon(), and toxic::CausticsPhotonTracer::trace_photon(). |
|
|
Reimplemented in toxic::BSDF, and toxic::PerfectSpecularBRDF. Definition at line 47 of file ibdf.h. Referenced by toxic::Renderer::compute_specular_reflections(), ComputeReflectance(), toxic::BSDF::Insert(), and toxic::CausticsPhotonTracer::trace_photon(). |
|
||||||||||||||||||||||||
|
Samples the function in order to obtain an outgoing direction, given an incoming direction. The probability with which the direction has been chosen is also computed. Both incoming and outgoing directions are expressed in local space. Note: this method must be overridden if the IsSpecular() method is defined to return true. Reimplemented in toxic::BSDF, and toxic::PerfectSpecularBRDF. Definition at line 146 of file ibdf.h. Referenced by toxic::BSDF::Sample(), toxic::GlobalPhotonTracer::trace_photon(), and toxic::CausticsPhotonTracer::trace_photon(). |
1.3.6