Photon Engine 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
ph::TranslucentMicrofacet Class Reference

Microfacet based translucent surface model. Microfacet optical behavior modeled using the dielectric variant [18] of the Cook-Torrance BRDF [4]. This model is double-sided. More...

#include <TranslucentMicrofacet.h>

Inheritance diagram for ph::TranslucentMicrofacet:
ph::SurfaceOptics

Public Member Functions

 TranslucentMicrofacet (const std::shared_ptr< DielectricFresnel > &fresnel, const std::shared_ptr< Microfacet > &microfacet)
 
ESurfacePhenomenon getPhenomenonOf (SurfaceElemental elemental) const override
 Get the phenomenon of a surface component. One can also setup query for a specific elemental. See BsdfQueryContext.
 
std::string toString () const override
 
- Public Member Functions inherited from ph::SurfaceOptics
 SurfaceOptics ()
 
virtual ~SurfaceOptics ()=default
 
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.
 

Additional Inherited Members

- Protected Attributes inherited from ph::SurfaceOptics
SurfacePhenomena m_phenomena
 
SurfaceElemental m_numElementals
 

Detailed Description

Microfacet based translucent surface model. Microfacet optical behavior modeled using the dielectric variant [18] of the Cook-Torrance BRDF [4]. This model is double-sided.

Constructor & Destructor Documentation

◆ TranslucentMicrofacet()

ph::TranslucentMicrofacet::TranslucentMicrofacet ( const std::shared_ptr< DielectricFresnel > & fresnel,
const std::shared_ptr< Microfacet > & microfacet )

Member Function Documentation

◆ getPhenomenonOf()

ESurfacePhenomenon ph::TranslucentMicrofacet::getPhenomenonOf ( SurfaceElemental elemental) const
overridevirtual

Get the phenomenon of a surface component. One can also setup query for a specific elemental. See BsdfQueryContext.

Implements ph::SurfaceOptics.

◆ toString()

std::string ph::TranslucentMicrofacet::toString ( ) const
inlineoverridevirtual

Reimplemented from ph::SurfaceOptics.


The documentation for this class was generated from the following files: