Lightmetrica  0.0.1.50dbee3 (yosakoi)
 All Classes Functions Variables Typedefs Enumerations Enumerator
Public Member Functions | List of all members
DielectricBSDF Class Referencefinal

Public Member Functions

 LM_COMPONENT_IMPL_DEF ("dielectric")
 
virtual bool Load (const ConfigNode &node, const Assets &assets)
 
virtual bool SampleDirection (const GeneralizedBSDFSampleQuery &query, const SurfaceGeometry &geom, GeneralizedBSDFSampleResult &result) const override
 
virtual Math::Vec3 SampleAndEstimateDirection (const GeneralizedBSDFSampleQuery &query, const SurfaceGeometry &geom, GeneralizedBSDFSampleResult &result) const override
 
virtual bool SampleAndEstimateDirectionBidir (const GeneralizedBSDFSampleQuery &query, const SurfaceGeometry &geom, GeneralizedBSDFSampleBidirResult &result) const override
 
virtual Math::Vec3 EvaluateDirection (const GeneralizedBSDFEvaluateQuery &query, const SurfaceGeometry &geom) const override
 
virtual Math::PDFEval EvaluateDirectionPDF (const GeneralizedBSDFEvaluateQuery &query, const SurfaceGeometry &geom) const override
 
virtual int BSDFTypes () const override
 
- Public Member Functions inherited from BSDF
 LM_ASSET_INTERFACE_DEF ("bsdf","bsdfs")
 
 LM_ASSET_DEPENDENCIES ("texture")
 
- Public Member Functions inherited from Asset
LM_PUBLIC_API std::string ID () const
 
LM_HIDDEN_API void SetID (const std::string &id)
 
- Public Member Functions inherited from Component
virtual std::string ComponentInterfaceTypeName () const =0
 
virtual std::string ComponentImplTypeName () const =0
 
- Public Member Functions inherited from SIMDAlignedType
void * operator new (std::size_t size) throw (std::bad_alloc)
 
void operator delete (void *p)
 

Additional Inherited Members

- Static Protected Member Functions inherited from BSDF
static LM_FORCE_INLINE Math::Float ShadingNormalCorrectionFactor (const TransportDirection &transportDir, const SurfaceGeometry &geom, const Math::Vec3 &localWi, const Math::Vec3 &localWo, const Math::Vec3 &worldWi, const Math::Vec3 &worldWo)
 

Detailed Description

Dielectric BSDF. Implements dielectric BSDF.

Inheritance diagram for DielectricBSDF:
BSDF GeneralizedBSDF Asset Component SIMDAlignedType

Member Function Documentation

virtual int DielectricBSDF::BSDFTypes ( ) const
inlineoverridevirtual

Check if generalized BSDF is directionally degenerated. e.g. specular BSDFs or directional light

Return values
trueThe BSDF is directionally degenerated.
falseThe BSDF is not directionally degenerated.

Get generalized BSDF type. If the generalized BSDF has multiple types, e.g. SpecularReflection and SpecularReflection, a bitmask of these types are returned.

Returns
Types.

Implements GeneralizedBSDF.

Math::Vec3 DielectricBSDF::EvaluateDirection ( const GeneralizedBSDFEvaluateQuery query,
const SurfaceGeometry geom 
) const
overridevirtual

Evaluate generalized BSDF.

Parameters
queryQuery structure.
geomSurface geometry.
Returns
Evaluated contribution.

Implements GeneralizedBSDF.

Math::PDFEval DielectricBSDF::EvaluateDirectionPDF ( const GeneralizedBSDFEvaluateQuery query,
const SurfaceGeometry geom 
) const
overridevirtual

Evaluate directional PDF.

Parameters
queryQuery structure.
geomSurface geometry.
Returns
Evaluated PDF.

Implements GeneralizedBSDF.

bool DielectricBSDF::Load ( const ConfigNode node,
const Assets assets 
)
virtual

Load an asset. Configure and initialize the asset by the XML elements given by #node. Some assets have references to the other assets, so #assets is also required. Dependent asset must be loaded beforehand.

Parameters
nodeXML node for the configuration.
assetsAsset manager.
trueSucceeded to load.
falseFailed to load.

Implements Asset.

Math::Vec3 DielectricBSDF::SampleAndEstimateDirection ( const GeneralizedBSDFSampleQuery query,
const SurfaceGeometry geom,
GeneralizedBSDFSampleResult result 
) const
overridevirtual

Sample and estimate direction. Computes f_s / p_{^}.

Parameters
queryQuery structure.
geomSurface geometry.
resultSampled result.
Returns
Estimate.

Implements GeneralizedBSDF.

bool DielectricBSDF::SampleAndEstimateDirectionBidir ( const GeneralizedBSDFSampleQuery query,
const SurfaceGeometry geom,
GeneralizedBSDFSampleBidirResult result 
) const
overridevirtual

Sample and estimate direction bidirectionally. In addition to SampleAndEstimateDirection, this function calculates values in the opposite direction. This function is introduced in order to avoid nasty precision problem with specular BSDFs.

Parameters
queryQuery structure.
geomSurface geometry.
weightsEstimate.
resultsSampled results.
Return values
trueSucceeded to sample.
falseFailed to sample.

Implements GeneralizedBSDF.

bool DielectricBSDF::SampleDirection ( const GeneralizedBSDFSampleQuery query,
const SurfaceGeometry geom,
GeneralizedBSDFSampleResult result 
) const
overridevirtual

Sample outgoing vector. Given the input direction originated from the point on the surface #wi, the function samples outgoing vector #wo from the suited distribution in the solid angle measure.

Parameters
queryQuery structure.
geomSurface geometry.
resultSampled result.
Return values
trueSucceeded to sample #wo.
falseFailed to sample #wo.

Implements GeneralizedBSDF.


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