neuray API Programmer's Manual

mi::neuraylib::ILpe_analysis_result Class Reference

[Configuration Interfaces]

Description

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.

Public Member Functions

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_color_classification_count() const =0
Reflects the number of classifications that are made possible by the color LPEs that were analyzed. More...
virtual bool  get_color_overlap_flag( Size i) const =0
Indicates whether a given overlap pair refers to color or alpha LPEs.
virtual Size get_overlap_count() const =0
Indicates the number of entries in the list of LPE overlaps.
virtual bool  get_overlap_expressions( Size i, const char*& lpe1, const char*& lpe2) const =0
Retrieves the LPEs of a given overlap pair.
virtual bool  get_overlap_indices( Size i, Size& o1, Size& o2) const =0
Retrieves the input indices of a given overlap pair.

Member Functions

virtual Size mi::​neuraylib::​ILpe_analysis_result::get_alpha_classification_count() const [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().

virtual Size mi::​neuraylib::​ILpe_analysis_result::get_color_classification_count() const [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: two classifications if the LPEs are disjoint or identical three classifications if the LPEs overlap (matches only LPE 0, matches only LPE 1, matches both)

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.

virtual bool mi::​neuraylib::​ILpe_analysis_result::get_color_overlap_flag( Size i) const [pure virtual]

Indicates whether a given overlap pair refers to color or alpha LPEs.

virtual Size mi::​neuraylib::​ILpe_analysis_result::get_overlap_count() const [pure virtual]

Indicates the number of entries in the list of LPE overlaps.

virtual bool mi::​neuraylib::​ILpe_analysis_result::get_overlap_expressions( Size i, const char*& lpe1, const char*& lpe2) const [pure virtual]

Retrieves the LPEs of a given overlap pair.

virtual bool mi::​neuraylib::​ILpe_analysis_result::get_overlap_indices( Size i, Size& o1, Size& o2) const [pure virtual]

Retrieves the input indices of a given overlap pair.