|
Photon Engine 2.0.0-beta
A physically based renderer.
|
Describes how light interacts with a surface. More...
#include <SurfaceOptics.h>
Public Member Functions | |
| SurfaceOptics () | |
| virtual | ~SurfaceOptics ()=default |
| virtual ESurfacePhenomenon | getPhenomenonOf (SurfaceElemental elemental) const =0 |
Get the phenomenon of a surface component. One can also setup query for a specific elemental. See BsdfQueryContext. | |
| void | calcBsdf (BsdfEvalQuery &eval) const |
| Executes a BSDF evaluation query. Respects sidedness policy. | |
| void | genBsdfSample (BsdfSampleQuery &sample, SampleFlow &sampleFlow) const |
| Executes a BSDF sample query. Respects sidedness policy. | |
| void | calcBsdfPdf (BsdfPdfQuery &pdfQuery) const |
| Executes a BSDF sample PDF query. Respects sidedness policy. | |
| SurfacePhenomena | getAllPhenomena () const |
| Get all phenomena that exist in this surface. | |
| SurfaceElemental | numElementals () const |
| Get number of components this surface contains. | |
| virtual std::string | toString () const |
Protected Attributes | |
| SurfacePhenomena | m_phenomena |
| SurfaceElemental | m_numElementals |
Friends | |
| class | LerpedSurfaceOptics |
Describes how light interacts with a surface.
| ph::SurfaceOptics::SurfaceOptics | ( | ) |
|
virtualdefault |
| void ph::SurfaceOptics::calcBsdf | ( | BsdfEvalQuery & | eval | ) | const |
Executes a BSDF evaluation query. Respects sidedness policy.
| void ph::SurfaceOptics::calcBsdfPdf | ( | BsdfPdfQuery & | pdfQuery | ) | const |
Executes a BSDF sample PDF query. Respects sidedness policy.
| void ph::SurfaceOptics::genBsdfSample | ( | BsdfSampleQuery & | sample, |
| SampleFlow & | sampleFlow ) const |
Executes a BSDF sample query. Respects sidedness policy.
|
inline |
Get all phenomena that exist in this surface.
|
pure virtual |
Get the phenomenon of a surface component. One can also setup query for a specific elemental. See BsdfQueryContext.
Implemented in ph::IdealAbsorber, ph::IdealDielectric, ph::IdealDielectricTransmitter, ph::IdealReflector, ph::LambertianReflector, ph::LbLayeredSurface, ph::LerpedSurfaceOptics, ph::OpaqueMicrofacet, ph::OrenNayar, ph::ThinDielectricFilm, ph::ThinDielectricShell, and ph::TranslucentMicrofacet.
|
inline |
Get number of components this surface contains.
getPhenomenonOf().
|
inlinevirtual |
Reimplemented in ph::LambertianReflector, ph::LbLayeredSurface, ph::LerpedSurfaceOptics, ph::OpaqueMicrofacet, ph::OrenNayar, and ph::TranslucentMicrofacet.
|
friend |
|
protected |
|
protected |