Iray SDK API nvidia_logo_transpbg.gif Up
mi::neuraylib::ILpe_analysis_result Class Referenceabstract

This interface represents the return value of mi::neuraylib::IRendering_configuration::analyze_light_path_expressions(). More...

#include <irendering_configuration.h>

Inheritance diagram for mi::neuraylib::ILpe_analysis_result:

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...
 
- Public Member Functions inherited from mi::neuraylib::ILpe_check_result
virtual Size get_messages_length () const =0
 Returns the number of error messages represented by this interface. More...
 
virtual Size get_index (Size i) const =0
 Returns the index of the light path expression in the input array that this error message applies to. More...
 
virtual bool get_color_expression_flag (Size i) const =0
 Indicates whether the error message applies to the color or alpha expression. More...
 
virtual Size get_position (Size i) const =0
 Returns the position of the offending character/token in the light path expression identified by get_index(). More...
 
virtual const char * get_message (Size i) const =0
 Returns an error message describing why the light path expression identified by get_index() is invalid. More...
 
- Public Member Functions inherited from mi::base::IInterface
virtual Uint32 retain () const =0
 Increments the reference count. More...
 
virtual Uint32 release () const =0
 Decrements the reference count. More...
 
virtual const IInterfaceget_interface (const Uuid &interface_id) const =0
 Acquires a const interface from another. More...
 
template<class T>
const T * get_interface () const
 Acquires a const interface from another. More...
 
virtual IInterfaceget_interface (const Uuid &interface_id)=0
 Acquires a mutable interface from another. More...
 
template<class T>
T * get_interface ()
 Acquires a mutable interface from another. More...
 
virtual Uuid get_iid () const =0
 Returns the interface ID of the most derived interface. More...
 

Additional Inherited Members

- Public Types inherited from mi::base::Interface_declare< 0xec3bc890, ... >
using Self = Interface_declare< id1, ... >
 Own type. More...
 
using IID = Uuid_t< id1, ... >
 Declares the interface ID (IID) of this interface. More...
 
- Public Types inherited from mi::base::Interface_declare< 0xec3bc890, ... >
using Self = Interface_declare< id1, ... >
 Own type. More...
 
using IID = Uuid_t< id1, ... >
 Declares the interface ID (IID) of this interface. More...
 
- Public Types inherited from mi::base::IInterface
using IID = Uuid_t<0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>
 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...
 
- 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...
 
- Static Public Member Functions inherited from mi::base::IInterface
static bool compare_iid (const Uuid &iid)
 Compares the interface ID iid against the interface ID of this interface. More...
 

Detailed 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.

Member Function Documentation

 get_alpha_classification_count()

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().

 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.

 get_color_overlap_flag()

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.

 get_overlap_count()

virtual Size mi::neuraylib::ILpe_analysis_result::get_overlap_count ( ) const
pure virtual

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

 get_overlap_expressions()

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.

 get_overlap_indices()

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.