|
| LM_COMPONENT_IMPL_DEF ("plugin.diffusemirror") |
|
virtual bool | Load (const ConfigNode &node, const Assets &assets) override |
|
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 |
|
| LM_ASSET_INTERFACE_DEF ("bsdf","bsdfs") |
|
| LM_ASSET_DEPENDENCIES ("texture") |
|
LM_PUBLIC_API std::string | ID () const |
|
LM_HIDDEN_API void | SetID (const std::string &id) |
|
virtual std::string | ComponentInterfaceTypeName () const =0 |
|
virtual std::string | ComponentImplTypeName () const =0 |
|
void * | operator new (std::size_t size) throw (std::bad_alloc) |
|
void | operator delete (void *p) |
|
|
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) |
|
virtual int DiffuseMirrorMixBSDF::BSDFTypes |
( |
| ) |
const |
|
inlineoverridevirtual |
Check if generalized BSDF is directionally degenerated. e.g. specular BSDFs or directional light
- Return values
-
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.
- Returns
- Types.
Implements GeneralizedBSDF.
Evaluate generalized BSDF.
- Parameters
-
query | Query structure. |
geom | Surface geometry. |
- Returns
- Evaluated contribution.
Implements GeneralizedBSDF.
Evaluate directional PDF.
- Parameters
-
query | Query structure. |
geom | Surface geometry. |
- Returns
- Evaluated PDF.
Implements GeneralizedBSDF.
virtual bool DiffuseMirrorMixBSDF::Load |
( |
const ConfigNode & |
node, |
|
|
const Assets & |
assets |
|
) |
| |
|
inlineoverridevirtual |
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
-
node | XML node for the configuration. |
assets | Asset manager. |
true | Succeeded to load. |
false | Failed to load. |
Implements Asset.
Sample and estimate direction. Computes f_s / p_{^}.
- Parameters
-
query | Query structure. |
geom | Surface geometry. |
result | Sampled result. |
- Returns
- Estimate.
Implements GeneralizedBSDF.
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
-
query | Query structure. |
geom | Surface geometry. |
weights | Estimate. |
results | Sampled results. |
- Return values
-
true | Succeeded to sample. |
false | Failed to sample. |
Implements GeneralizedBSDF.
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
-
query | Query structure. |
geom | Surface geometry. |
result | Sampled result. |
- Return values
-
true | Succeeded to sample #wo. |
false | Failed to sample #wo. |
Implements GeneralizedBSDF.
The documentation for this class was generated from the following file:
- /home/travis/build/hi2p-perim/lightmetrica/plugin/plugin.diffusemirror/diffusemirror.cpp