MDL SDK API nvidia_logo_transpbg.gif Up
mdl_distiller_rules.h File Reference

MDL distiller rule definitions and rule base class. More...

Go to the source code of this file.

Classes

class  mi::mdl::IRule_matcher_event
 An interface for reporting rule matcher events. More...
 
class  mi::mdl::IRule_matcher
 The interface to the generated rule matcher, new version for distiller plugin API. More...
 

Namespaces

namespace  mi
 Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
 

Enumerations

enum  mi::mdl::Rule_eval_strategy {
  mi::mdl::RULE_EVAL_TOP_DOWN ,
  mi::mdl::RULE_EVAL_BOTTOM_UP
}
 Rule evaluation strategies. More...
 
enum  mi::mdl::Rule_result_code {
  mi::mdl::RULE_RECURSE ,
  mi::mdl::RULE_REPEAT_RULES ,
  mi::mdl::RULE_SKIP_RECURSION
}
 Return codes for the top-down evaluation strategy. More...
 
enum  mi::mdl::Distiller_extended_node_semantics {
  mi::mdl::DS_DIST_DEFAULT_BSDF = -1000 ,
  mi::mdl::DS_DIST_DEFAULT_EDF = -1001 ,
  mi::mdl::DS_DIST_DEFAULT_VDF = -1002 ,
  mi::mdl::DS_DIST_DEFAULT_HAIR_BSDF = -1003 ,
  mi::mdl::DS_DIST_STRUCT_MATERIAL_EMISSION = 0x10010 ,
  mi::mdl::DS_DIST_STRUCT_MATERIAL_SURFACE ,
  mi::mdl::DS_DIST_STRUCT_MATERIAL_VOLUME ,
  mi::mdl::DS_DIST_STRUCT_MATERIAL_GEOMETRY ,
  mi::mdl::DS_DIST_STRUCT_MATERIAL ,
  mi::mdl::DS_DIST_BSDF_TINT = 0x10017 ,
  mi::mdl::DS_DIST_BSDF_TINT2 ,
  mi::mdl::DS_DIST_EDF_TINT ,
  mi::mdl::DS_DIST_VDF_TINT ,
  mi::mdl::DS_DIST_HAIR_BSDF_TINT ,
  mi::mdl::DS_DIST_BSDF_MIX_1 = 0x10020 ,
  mi::mdl::DS_DIST_BSDF_MIX_2 ,
  mi::mdl::DS_DIST_BSDF_MIX_3 ,
  mi::mdl::DS_DIST_BSDF_MIX_4 ,
  mi::mdl::DS_DIST_BSDF_CLAMPED_MIX_1 ,
  mi::mdl::DS_DIST_BSDF_CLAMPED_MIX_2 ,
  mi::mdl::DS_DIST_BSDF_CLAMPED_MIX_3 ,
  mi::mdl::DS_DIST_BSDF_CLAMPED_MIX_4 ,
  mi::mdl::DS_DIST_BSDF_UNBOUNDED_MIX_1 ,
  mi::mdl::DS_DIST_BSDF_UNBOUNDED_MIX_2 ,
  mi::mdl::DS_DIST_BSDF_UNBOUNDED_MIX_3 ,
  mi::mdl::DS_DIST_BSDF_UNBOUNDED_MIX_4 ,
  mi::mdl::DS_DIST_BSDF_COLOR_MIX_1 = 0x10030 ,
  mi::mdl::DS_DIST_BSDF_COLOR_MIX_2 ,
  mi::mdl::DS_DIST_BSDF_COLOR_MIX_3 ,
  mi::mdl::DS_DIST_BSDF_COLOR_MIX_4 ,
  mi::mdl::DS_DIST_BSDF_COLOR_CLAMPED_MIX_1 ,
  mi::mdl::DS_DIST_BSDF_COLOR_CLAMPED_MIX_2 ,
  mi::mdl::DS_DIST_BSDF_COLOR_CLAMPED_MIX_3 ,
  mi::mdl::DS_DIST_BSDF_COLOR_CLAMPED_MIX_4 ,
  mi::mdl::DS_DIST_BSDF_COLOR_UNBOUNDED_MIX_1 ,
  mi::mdl::DS_DIST_BSDF_COLOR_UNBOUNDED_MIX_2 ,
  mi::mdl::DS_DIST_BSDF_COLOR_UNBOUNDED_MIX_3 ,
  mi::mdl::DS_DIST_BSDF_COLOR_UNBOUNDED_MIX_4 ,
  mi::mdl::DS_DIST_EDF_MIX_1 = 0x10040 ,
  mi::mdl::DS_DIST_EDF_MIX_2 ,
  mi::mdl::DS_DIST_EDF_MIX_3 ,
  mi::mdl::DS_DIST_EDF_MIX_4 ,
  mi::mdl::DS_DIST_EDF_CLAMPED_MIX_1 ,
  mi::mdl::DS_DIST_EDF_CLAMPED_MIX_2 ,
  mi::mdl::DS_DIST_EDF_CLAMPED_MIX_3 ,
  mi::mdl::DS_DIST_EDF_CLAMPED_MIX_4 ,
  mi::mdl::DS_DIST_EDF_UNBOUNDED_MIX_1 ,
  mi::mdl::DS_DIST_EDF_UNBOUNDED_MIX_2 ,
  mi::mdl::DS_DIST_EDF_UNBOUNDED_MIX_3 ,
  mi::mdl::DS_DIST_EDF_UNBOUNDED_MIX_4 ,
  mi::mdl::DS_DIST_EDF_COLOR_MIX_1 = 0x10050 ,
  mi::mdl::DS_DIST_EDF_COLOR_MIX_2 ,
  mi::mdl::DS_DIST_EDF_COLOR_MIX_3 ,
  mi::mdl::DS_DIST_EDF_COLOR_MIX_4 ,
  mi::mdl::DS_DIST_EDF_COLOR_CLAMPED_MIX_1 ,
  mi::mdl::DS_DIST_EDF_COLOR_CLAMPED_MIX_2 ,
  mi::mdl::DS_DIST_EDF_COLOR_CLAMPED_MIX_3 ,
  mi::mdl::DS_DIST_EDF_COLOR_CLAMPED_MIX_4 ,
  mi::mdl::DS_DIST_EDF_COLOR_UNBOUNDED_MIX_1 ,
  mi::mdl::DS_DIST_EDF_COLOR_UNBOUNDED_MIX_2 ,
  mi::mdl::DS_DIST_EDF_COLOR_UNBOUNDED_MIX_3 ,
  mi::mdl::DS_DIST_EDF_COLOR_UNBOUNDED_MIX_4 ,
  mi::mdl::DS_DIST_VDF_MIX_1 = 0x10060 ,
  mi::mdl::DS_DIST_VDF_MIX_2 ,
  mi::mdl::DS_DIST_VDF_MIX_3 ,
  mi::mdl::DS_DIST_VDF_MIX_4 ,
  mi::mdl::DS_DIST_VDF_CLAMPED_MIX_1 ,
  mi::mdl::DS_DIST_VDF_CLAMPED_MIX_2 ,
  mi::mdl::DS_DIST_VDF_CLAMPED_MIX_3 ,
  mi::mdl::DS_DIST_VDF_CLAMPED_MIX_4 ,
  mi::mdl::DS_DIST_VDF_UNBOUNDED_MIX_1 ,
  mi::mdl::DS_DIST_VDF_UNBOUNDED_MIX_2 ,
  mi::mdl::DS_DIST_VDF_UNBOUNDED_MIX_3 ,
  mi::mdl::DS_DIST_VDF_UNBOUNDED_MIX_4 ,
  mi::mdl::DS_DIST_VDF_COLOR_MIX_1 = 0x10070 ,
  mi::mdl::DS_DIST_VDF_COLOR_MIX_2 ,
  mi::mdl::DS_DIST_VDF_COLOR_MIX_3 ,
  mi::mdl::DS_DIST_VDF_COLOR_MIX_4 ,
  mi::mdl::DS_DIST_VDF_COLOR_CLAMPED_MIX_1 ,
  mi::mdl::DS_DIST_VDF_COLOR_CLAMPED_MIX_2 ,
  mi::mdl::DS_DIST_VDF_COLOR_CLAMPED_MIX_3 ,
  mi::mdl::DS_DIST_VDF_COLOR_CLAMPED_MIX_4 ,
  mi::mdl::DS_DIST_VDF_COLOR_UNBOUNDED_MIX_1 ,
  mi::mdl::DS_DIST_VDF_COLOR_UNBOUNDED_MIX_2 ,
  mi::mdl::DS_DIST_VDF_COLOR_UNBOUNDED_MIX_3 ,
  mi::mdl::DS_DIST_VDF_COLOR_UNBOUNDED_MIX_4 ,
  mi::mdl::DS_DIST_MATERIAL_CONDITIONAL_OPERATOR = 0x10100 ,
  mi::mdl::DS_DIST_BSDF_CONDITIONAL_OPERATOR ,
  mi::mdl::DS_DIST_EDF_CONDITIONAL_OPERATOR ,
  mi::mdl::DS_DIST_VDF_CONDITIONAL_OPERATOR ,
  mi::mdl::DS_DIST_BSDF_DIRECTIONAL_FACTOR = 0x10110 ,
  mi::mdl::DS_DIST_EDF_DIRECTIONAL_FACTOR ,
  mi::mdl::DS_DIST_LOCAL_NORMAL = 0x11000
}
 Enum that extends mi::mdl::IDefinition::Semantics with semantics for custom extended nodes in the distiller, such as elementary DFs, material structures and mixers. More...
 

Detailed Description

MDL distiller rule definitions and rule base class.

Enumeration Type Documentation

 Distiller_extended_node_semantics

Enum that extends mi::mdl::IDefinition::Semantics with semantics for custom extended nodes in the distiller, such as elementary DFs, material structures and mixers.

The negative semantics are needed for the right ordering of the canonical ordering of mixers.

Enumerator
DS_DIST_DEFAULT_BSDF 

Default bsdf().

DS_DIST_DEFAULT_EDF 

Default edf().

DS_DIST_DEFAULT_VDF 

Default vdf().

DS_DIST_DEFAULT_HAIR_BSDF 

Default hair_bsdf().

DS_DIST_STRUCT_MATERIAL_EMISSION 

material_emission struct

DS_DIST_STRUCT_MATERIAL_SURFACE 

material_surface struct

DS_DIST_STRUCT_MATERIAL_VOLUME 

material_volume struct

DS_DIST_STRUCT_MATERIAL_GEOMETRY 

material_geometry struct

DS_DIST_STRUCT_MATERIAL 

material struct

DS_DIST_BSDF_TINT 

tint modifier

DS_DIST_BSDF_TINT2 

tint modifier with extra reflection

DS_DIST_EDF_TINT 

tint modifier

DS_DIST_VDF_TINT 

tint modifier

DS_DIST_HAIR_BSDF_TINT 

tint modifier

DS_DIST_BSDF_MIX_1 

normalized_mix with one component

DS_DIST_BSDF_MIX_2 

normalized_mix with two components

DS_DIST_BSDF_MIX_3 

normalized_mix with three components

DS_DIST_BSDF_MIX_4 

normalized_mix with four components

DS_DIST_BSDF_CLAMPED_MIX_1 

clamped_mix with one component

DS_DIST_BSDF_CLAMPED_MIX_2 

clamped_mix with two components

DS_DIST_BSDF_CLAMPED_MIX_3 

clamped_mix with three components

DS_DIST_BSDF_CLAMPED_MIX_4 

clamped_mix with four components

DS_DIST_BSDF_UNBOUNDED_MIX_1 

unbounded_mix with one component

DS_DIST_BSDF_UNBOUNDED_MIX_2 

unbounded_mix with two components

DS_DIST_BSDF_UNBOUNDED_MIX_3 

unbounded_mix with three components

DS_DIST_BSDF_UNBOUNDED_MIX_4 

unbounded_mix with four components

DS_DIST_BSDF_COLOR_MIX_1 

color_normalized_mix with one component

DS_DIST_BSDF_COLOR_MIX_2 

color_normalized_mix with two components

DS_DIST_BSDF_COLOR_MIX_3 

color_normalized_mix with three components

DS_DIST_BSDF_COLOR_MIX_4 

color_normalized_mix with four components

DS_DIST_BSDF_COLOR_CLAMPED_MIX_1 

color_clamped_mix with one component

DS_DIST_BSDF_COLOR_CLAMPED_MIX_2 

color_clamped_mix with two components

DS_DIST_BSDF_COLOR_CLAMPED_MIX_3 

color_clamped_mix with three components

DS_DIST_BSDF_COLOR_CLAMPED_MIX_4 

color_clamped_mix with four components

DS_DIST_BSDF_COLOR_UNBOUNDED_MIX_1 

color_unbounded_mix with one component

DS_DIST_BSDF_COLOR_UNBOUNDED_MIX_2 

color_unbounded_mix with two components

DS_DIST_BSDF_COLOR_UNBOUNDED_MIX_3 

color_unbounded_mix with three components

DS_DIST_BSDF_COLOR_UNBOUNDED_MIX_4 

color_unbounded_mix with four components

DS_DIST_EDF_MIX_1 

normalized_mix with one component

DS_DIST_EDF_MIX_2 

normalized_mix with two components

DS_DIST_EDF_MIX_3 

normalized_mix with three components

DS_DIST_EDF_MIX_4 

normalized_mix with four components

DS_DIST_EDF_CLAMPED_MIX_1 

clamped_mix with one component

DS_DIST_EDF_CLAMPED_MIX_2 

clamped_mix with two components

DS_DIST_EDF_CLAMPED_MIX_3 

clamped_mix with three components

DS_DIST_EDF_CLAMPED_MIX_4 

clamped_mix with four components

DS_DIST_EDF_UNBOUNDED_MIX_1 

unbounded_mix with one component

DS_DIST_EDF_UNBOUNDED_MIX_2 

unbounded_mix with two components

DS_DIST_EDF_UNBOUNDED_MIX_3 

unbounded_mix with three components

DS_DIST_EDF_UNBOUNDED_MIX_4 

unbounded_mix with four components

DS_DIST_EDF_COLOR_MIX_1 

color_normalized_mix with one component

DS_DIST_EDF_COLOR_MIX_2 

color_normalized_mix with two components

DS_DIST_EDF_COLOR_MIX_3 

color_normalized_mix with three components

DS_DIST_EDF_COLOR_MIX_4 

color_normalized_mix with four components

DS_DIST_EDF_COLOR_CLAMPED_MIX_1 

color_clamped_mix with one component

DS_DIST_EDF_COLOR_CLAMPED_MIX_2 

color_clamped_mix with two components

DS_DIST_EDF_COLOR_CLAMPED_MIX_3 

color_clamped_mix with three components

DS_DIST_EDF_COLOR_CLAMPED_MIX_4 

color_clamped_mix with four components

DS_DIST_EDF_COLOR_UNBOUNDED_MIX_1 

color_unbounded_mix with one component

DS_DIST_EDF_COLOR_UNBOUNDED_MIX_2 

color_unbounded_mix with two components

DS_DIST_EDF_COLOR_UNBOUNDED_MIX_3 

color_unbounded_mix with three components

DS_DIST_EDF_COLOR_UNBOUNDED_MIX_4 

color_unbounded_mix with four components

DS_DIST_VDF_MIX_1 

normalized_mix with one component

DS_DIST_VDF_MIX_2 

normalized_mix with two components

DS_DIST_VDF_MIX_3 

normalized_mix with three components

DS_DIST_VDF_MIX_4 

normalized_mix with four components

DS_DIST_VDF_CLAMPED_MIX_1 

clamped_mix with one component

DS_DIST_VDF_CLAMPED_MIX_2 

clamped_mix with two components

DS_DIST_VDF_CLAMPED_MIX_3 

clamped_mix with three components

DS_DIST_VDF_CLAMPED_MIX_4 

clamped_mix with four components

DS_DIST_VDF_UNBOUNDED_MIX_1 

unbounded_mix with one component

DS_DIST_VDF_UNBOUNDED_MIX_2 

unbounded_mix with two components

DS_DIST_VDF_UNBOUNDED_MIX_3 

unbounded_mix with three components

DS_DIST_VDF_UNBOUNDED_MIX_4 

unbounded_mix with four components

DS_DIST_VDF_COLOR_MIX_1 

color_normalized_mix with one component

DS_DIST_VDF_COLOR_MIX_2 

color_normalized_mix with two components

DS_DIST_VDF_COLOR_MIX_3 

color_normalized_mix with three components

DS_DIST_VDF_COLOR_MIX_4 

color_normalized_mix with four components

DS_DIST_VDF_COLOR_CLAMPED_MIX_1 

color_clamped_mix with one component

DS_DIST_VDF_COLOR_CLAMPED_MIX_2 

color_clamped_mix with two components

DS_DIST_VDF_COLOR_CLAMPED_MIX_3 

color_clamped_mix with three components

DS_DIST_VDF_COLOR_CLAMPED_MIX_4 

color_clamped_mix with four components

DS_DIST_VDF_COLOR_UNBOUNDED_MIX_1 

color_unbounded_mix with one component

DS_DIST_VDF_COLOR_UNBOUNDED_MIX_2 

color_unbounded_mix with two components

DS_DIST_VDF_COLOR_UNBOUNDED_MIX_3 

color_unbounded_mix with three components

DS_DIST_VDF_COLOR_UNBOUNDED_MIX_4 

color_unbounded_mix with four components

DS_DIST_MATERIAL_CONDITIONAL_OPERATOR 

ternary ?: operator on material type

DS_DIST_BSDF_CONDITIONAL_OPERATOR 

ternary ?: operator on bsdf type

DS_DIST_EDF_CONDITIONAL_OPERATOR 

ternary ?: operator on edf type

DS_DIST_VDF_CONDITIONAL_OPERATOR 

ternary ?: operator on vdf type

DS_DIST_BSDF_DIRECTIONAL_FACTOR 

directional factor for BSDF

DS_DIST_EDF_DIRECTIONAL_FACTOR 

directional factor for EDF

DS_DIST_LOCAL_NORMAL 

local_normal

 Rule_eval_strategy

Rule evaluation strategies.

Enumerator
RULE_EVAL_TOP_DOWN 

Evaluate rules top down.

RULE_EVAL_BOTTOM_UP 

Evaluate rules bottom up.

 Rule_result_code

Return codes for the top-down evaluation strategy.

Enumerator
RULE_RECURSE 

Default, recurse into the sub-expressions.

RULE_REPEAT_RULES 

Repeat rule matching with current node.

RULE_SKIP_RECURSION 

Skip recursion into sub-expressions.