This interface represents the return value of mi::neuraylib::IRendering_configuration::analyze_light_path_expressions(). More...
#include <irendering_configuration.h>
Public Member Functions | |
virtual Size | get_color_classification_count () const =0 |
Reflects the number of classifications that are made possible by the color LPEs that were analyzed. More... | |
virtual Size | get_alpha_classification_count () const =0 |
Reflects the number of classifications that are made possible by the alpha LPEs that were analyzed. More... | |
virtual Size | get_overlap_count () const =0 |
Indicates the number of entries in the list of LPE overlaps. More... | |
virtual bool | get_color_overlap_flag (Size i) const =0 |
Indicates whether a given overlap pair refers to color or alpha LPEs. More... | |
virtual bool | get_overlap_indices (Size i, Size &o1, Size &o2) const =0 |
Retrieves the input indices of a given overlap pair. More... | |
virtual bool | get_overlap_expressions (Size i, const char *&lpe1, const char *&lpe2) const =0 |
Retrieves the LPEs of a given overlap pair. More... | |
Additional Inherited Members | |
Public Types inherited from mi::base::Interface_declare< 0xec3bc890, ... > | |
typedef Interface_declare< id1, ... > | Self |
Own type. More... | |
typedef Uuid_t< id1, ... > | IID |
Declares the interface ID (IID) of this interface. More... | |
Static Public Member Functions inherited from mi::base::Interface_declare< 0xec3bc890, ... > | |
static bool | compare_iid (const Uuid &iid) |
Compares the interface ID iid against the interface ID of this interface and of its ancestors. More... | |
This interface represents the return value of mi::neuraylib::IRendering_configuration::analyze_light_path_expressions().
The analysis process determines overlap between LPEs. Two LPEs overlap if they capture some of the same paths. It is generally desirable to craft LPEs that are disjoint because only then can results be composited together without duplicating contributions. In addition, the number of possible classifications of any generated path grows exponentially in the number of overlapping LPEs. Even if this potentially large number of classifications is not actually written to different result buffers, the internal machinery still has to account for all possible outcomes. Use of many overlapping LPEs may thus lead to long parser construction times and high memory use.
The mi::neuraylib::IRendering_configuration::analyze_light_path_expressions() functions allows applications to determine the degree of overlap between LPEs before the expressions are submitted to the renderer. This makes it possible to diagnose problematic situations to users.
|
pure virtual |
Reflects the number of classifications that are made possible by the alpha LPEs that were analyzed.
This function is analogous to get_color_classification_count().
|
pure virtual |
Reflects the number of classifications that are made possible by the color LPEs that were analyzed.
A single (valid) LPE will yield a single classification. Two LPEs may yield:
For best results, the number of classifications should be equal to the number of LPEs. Cases where this number is significantly larger than the number of LPEs generally indicate issues with the provided LPEs. Use one of the get_overlap functions to determine which LPEs overlap.
|
pure virtual |
Indicates whether a given overlap pair refers to color or alpha LPEs.
|
pure virtual |
Indicates the number of entries in the list of LPE overlaps.
|
pure virtual |
Retrieves the LPEs of a given overlap pair.