Lightmetrica
0.0.1.50dbee3 (yosakoi)
|
#include <generalizedbsdf.h>
Public Member Functions | |
virtual bool | SampleDirection (const GeneralizedBSDFSampleQuery &query, const SurfaceGeometry &geom, GeneralizedBSDFSampleResult &result) const =0 |
virtual Math::Vec3 | SampleAndEstimateDirection (const GeneralizedBSDFSampleQuery &query, const SurfaceGeometry &geom, GeneralizedBSDFSampleResult &result) const =0 |
virtual bool | SampleAndEstimateDirectionBidir (const GeneralizedBSDFSampleQuery &query, const SurfaceGeometry &geom, GeneralizedBSDFSampleBidirResult &result) const =0 |
virtual Math::Vec3 | EvaluateDirection (const GeneralizedBSDFEvaluateQuery &query, const SurfaceGeometry &geom) const =0 |
virtual Math::PDFEval | EvaluateDirectionPDF (const GeneralizedBSDFEvaluateQuery &query, const SurfaceGeometry &geom) const =0 |
virtual int | BSDFTypes () const =0 |
Public Member Functions inherited from Asset | |
virtual bool | Load (const ConfigNode &node, const Assets &assets)=0 |
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) |
Generalized BSDF. Offers interfaces for direction sampling and evaluation. Thanks to the class BSDF and direction component of light and camera can be sampled in the similar way.
|
pure virtual |
Check if generalized BSDF is directionally degenerated. e.g. specular BSDFs or directional light
true | The BSDF is directionally degenerated. |
false | The 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.
Implemented in DiffuseMirrorMixBSDF, TestBSDF, AreaLight, PerspectiveCamera, DiffuseBSDF, ThinLensCamera, ConstantEnvironmentLight, DielectricBSDF, PerfectMirrorBSDF, and StubBSDF.
|
pure virtual |
Evaluate generalized BSDF.
query | Query structure. |
geom | Surface geometry. |
Implemented in DiffuseMirrorMixBSDF, TestBSDF, AreaLight, PerspectiveCamera, DiffuseBSDF, ConstantEnvironmentLight, ThinLensCamera, DielectricBSDF, PerfectMirrorBSDF, and StubBSDF.
|
pure virtual |
Evaluate directional PDF.
query | Query structure. |
geom | Surface geometry. |
Implemented in DiffuseMirrorMixBSDF, TestBSDF, AreaLight, PerspectiveCamera, DiffuseBSDF, ConstantEnvironmentLight, ThinLensCamera, DielectricBSDF, PerfectMirrorBSDF, and StubBSDF.
|
pure virtual |
Sample and estimate direction. Computes f_s / p_{^}.
query | Query structure. |
geom | Surface geometry. |
result | Sampled result. |
Implemented in DiffuseMirrorMixBSDF, TestBSDF, AreaLight, PerspectiveCamera, DiffuseBSDF, ConstantEnvironmentLight, ThinLensCamera, DielectricBSDF, PerfectMirrorBSDF, and StubBSDF.
|
pure virtual |
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.
query | Query structure. |
geom | Surface geometry. |
weights | Estimate. |
results | Sampled results. |
true | Succeeded to sample. |
false | Failed to sample. |
Implemented in DiffuseMirrorMixBSDF, TestBSDF, AreaLight, PerspectiveCamera, DiffuseBSDF, ConstantEnvironmentLight, ThinLensCamera, DielectricBSDF, PerfectMirrorBSDF, and StubBSDF.
|
pure virtual |
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.
query | Query structure. |
geom | Surface geometry. |
result | Sampled result. |
true | Succeeded to sample #wo. |
false | Failed to sample #wo. |
Implemented in AreaLight, PerspectiveCamera, DiffuseMirrorMixBSDF, DiffuseBSDF, ConstantEnvironmentLight, ThinLensCamera, DielectricBSDF, PerfectMirrorBSDF, TestBSDF, and StubBSDF.