MDL SDK API nvidia_logo_transpbg.gif Up
mi::neuraylib Namespace Reference

Namespace for the MDL SDK API. More...

Classes

class  Annotation_wrapper
 A wrapper around the interfaces for MDL annotations. More...
 
class  Argument_editor
 A wrapper around the interface for MDL material instances and function calls. More...
 
struct  Bsdf_auxiliary_data_base
 Input and output structure for BSDF auxiliary calculation data. More...
 
class  Bsdf_buffer
 Example implementation of the abstract interface mi::neuraylib::IBsdf_buffer. More...
 
struct  Bsdf_evaluate_data_base
 Input and output structure for BSDF evaluation data. More...
 
class  Bsdf_isotropic_data
 Example implementation of the abstract interface mi::neuraylib::IBsdf_isotropic_data. More...
 
struct  Bsdf_pdf_data
 Input and output structure for BSDF PDF calculation data. More...
 
struct  Bsdf_sample_data
 Input and output structure for BSDF sampling data. More...
 
class  Definition_wrapper
 A wrapper around the interface for MDL function definitions. More...
 
struct  Edf_auxiliary_data_base
 Input and output structure for EDF auxiliary calculation data. More...
 
struct  Edf_evaluate_data_base
 Input and output structure for EDF evaluation data. More...
 
struct  Edf_pdf_data
 Input and output structure for EDF PDF calculation data. More...
 
struct  Edf_sample_data
 Input and output structure for EDF sampling data. More...
 
class  IAllocator
 The Allocator interface class supports allocating and releasing memory dynamically and querying the amount of extra memory used in the integrating application. More...
 
class  IAnnotation
 An annotation is similar to a direct call expression, but without return type. More...
 
class  IAnnotation_block
 An annotation block is an array of annotations. More...
 
class  IAnnotation_definition
 An annotation definition. More...
 
class  IAnnotation_list
 An ordered collection of annotation blocks identified by name or index. More...
 
class  IAttribute_container
 An attribute container is a database element that stores attributes and no other data. More...
 
class  IAttribute_set
 The attribute set comprises all attributes attached to a database element. More...
 
class  IBaker
 Allows to bake a varying or uniform expression of a compiled material into a texture or constant. More...
 
class  IBsdf_buffer
 Abstract interface for a buffer of BSDF values. More...
 
class  IBsdf_isotropic_data
 Abstract interface for isotropic BSDF data. More...
 
class  IBsdf_measurement
 A scene element that stores measured BSDF data. More...
 
class  IBuffer
 Abstract interface for a simple buffer with binary data. More...
 
class  ICanvas
 Abstract interface for a canvas represented by a rectangular array of tiles. More...
 
class  ICanvas_base
 Abstract interface for a canvas (base class). More...
 
class  ICompiled_material
 This interface represents a compiled material. More...
 
class  IDatabase
 This interface is used to interact with the distributed database. More...
 
class  IDebug_configuration
 This interface represents an interface to set debug options. More...
 
class  IDeserialized_function_name
 Represents a deserialized function name. More...
 
class  IDeserialized_module_name
 Represents a deserialized module name. More...
 
class  IExpression
 The interface to MDL expressions. More...
 
class  IExpression_call
 An indirect call expression. More...
 
class  IExpression_constant
 A constant expression. More...
 
class  IExpression_direct_call
 A direct call expression. More...
 
class  IExpression_factory
 The interface for creating expressions. More...
 
class  IExpression_list
 An ordered collection of expressions identified by name or index. More...
 
class  IExpression_parameter
 A parameter reference expression. More...
 
class  IExpression_temporary
 A temporary reference expression. More...
 
class  IFactory
 This API component allows the creation, assignment, and cloning of instances of types. More...
 
class  IFunction_call
 This interface represents a function call. More...
 
class  IFunction_definition
 This interface represents a function definition. More...
 
class  IImage
 This interface represents a pixel image file. More...
 
class  IImage_api
 This interface provides various utilities related to canvases and buffers. More...
 
class  IImage_file
 Abstract interface for image files. More...
 
class  IImage_plugin
 Abstract interface for image plugins. More...
 
class  IImpexp_base
 Abstract base interface common for importers and exporters. More...
 
class  ILightprofile
 This interface represents light profiles. More...
 
class  ILink_unit
 Represents a link-unit of an MDL backend. More...
 
class  ILogging_configuration
 This interface is used for configuring the logging for the MDL SDK library. More...
 
class  IManifest
 Represents the manifest in an MDL archive. More...
 
class  IMaterial_instance
 This interface represents a material instance. More...
 
class  IMdl_archive_api
 This API component provides functionality related to MDL archives. More...
 
class  IMdl_backend
 MDL backends allow to transform compiled material instances or function calls into target code. More...
 
class  IMdl_backend_api
 This interface can be used to obtain the MDL backends. More...
 
class  IMdl_compatibility_api
 Provides access to various functions to inspect the compatibility between MDL modules and archives. More...
 
class  IMdl_compiler
 The MDL compiler allows to register builtin modules. More...
 
class  IMdl_configuration
 This interface can be used to query and change the MDL configuration. More...
 
class  IMdl_discovery_api
 Interface for the discovery API. More...
 
class  IMdl_discovery_result
 Interface for the discovery result. More...
 
class  IMdl_distiller_api
 Provides access to various functionality related to MDL distilling. More...
 
class  IMdl_entity_resolver
 The entity resolver is used to resolve MDL modules and resources in such modules. More...
 
class  IMdl_evaluator_api
 Provides access to various functions for the evaluation of MDL expressions. More...
 
class  IMdl_execution_context
 The execution context can be used to query status information like error and warning messages concerning the operation it was passed into. More...
 
class  IMdl_factory
 Factory for various MDL interfaces and functions. More...
 
class  IMdl_i18n_configuration
 This interface is used to query and change MDL internationalization settings. More...
 
class  IMdl_impexp_api
 API component for MDL related import and export operations. More...
 
class  IMdl_info
 Abstract interface for a discovery graph node. More...
 
class  IMdl_lightprofile_info
 Interface for lightprofile files. More...
 
class  IMdl_loading_wait_handle
 Interface of a loading wait handle. More...
 
class  IMdl_loading_wait_handle_factory
 Interface of a loading wait handle factory. More...
 
class  IMdl_measured_bsdf_info
 Interface for measured bsdf files. More...
 
class  IMdl_module_builder
 The module builder allows to create new MDL modules. More...
 
class  IMdl_module_info
 Interface for a graph node representing an MDL module. More...
 
class  IMdl_module_transformer
 The module transformer allows to apply certain transformations on an MDL module. More...
 
class  IMdl_package_info
 Interface for a graph node representing an MDL package. More...
 
class  IMdl_resolved_module
 Describes a resolved module (or a failed attempt). More...
 
class  IMdl_resolved_resource
 Describes an ordered set of resolved resource elements. More...
 
class  IMdl_resolved_resource_element
 Describes an ordered set of resolved resource entities. More...
 
class  IMdl_resource_info
 Interface for resources. More...
 
class  IMdl_texture_info
 Interface for texture files. More...
 
class  IMdl_xliff_info
 Interface for xliff files. More...
 
class  IMdle_api
 Provides access to functions related to the creation of encapsulated MDL modules (MDLE). More...
 
class  IMdle_deserialization_callback
 Callback to map references to MDLE modules during deserialization. More...
 
class  IMdle_serialization_callback
 Callback to map references to MDLE modules during serialization. More...
 
class  IMessage
 Message interface. More...
 
class  IModule
 This interface represents an MDL module. More...
 
class  INeuray
 This is an object representing the MDL SDK library. More...
 
class  IPlugin_api
 This abstract interface gives access to the MDL SDK API to plugins. More...
 
class  IPlugin_configuration
 This interface is used to load plugins and to query information about loaded plugins. More...
 
class  IReader
 A reader supports binary block reads and string-oriented line reads that zero-terminate the result. More...
 
class  IReader_writer_base
 Base interface for readers and writers. More...
 
class  IScene_element
 Common base interface for all scene elements. More...
 
class  IScope
 A scope is the context which determines the visibility of database elements. More...
 
class  ISerialized_function_name
 Represents a serialized function name. More...
 
class  IStream_position
 Represents the position in a data stream. More...
 
class  IStruct_category
 Represents the optional struct category for struct types. More...
 
class  IStruct_category_list
 An ordered collection of struct categories identified by name or index. More...
 
class  ITarget_argument_block
 Represents an argument block of a class-compiled material compiled for a specific target. More...
 
class  ITarget_code
 Represents target code of an MDL backend. More...
 
class  ITarget_resource_callback
 A callback interface to allow the user to handle resources when creating new mi::neuraylib::ITarget_argument_block objects for class-compiled materials when the arguments contain textures not known during compilation. More...
 
class  ITarget_value_layout
 Represents the layout of an mi::neuraylib::ITarget_argument_block with support for nested elements. More...
 
class  ITexture
 Textures add image processing options to images. More...
 
class  ITile
 Abstract interface for a tile. More...
 
class  ITransaction
 A transaction provides a consistent view on the database. More...
 
class  IType
 The interface to MDL types. More...
 
class  IType_alias
 The type of kind alias. More...
 
class  IType_array
 The type of kind array. More...
 
class  IType_atomic
 An atomic type. More...
 
class  IType_bool
 The type of kind bool. More...
 
class  IType_bsdf
 The type of kind bsdf. More...
 
class  IType_bsdf_measurement
 The type of kind bsdf_measurement. More...
 
class  IType_color
 The type of kind color. More...
 
class  IType_compound
 A compound type. More...
 
class  IType_df
 The type of distribution functions. More...
 
class  IType_double
 The type of kind double. More...
 
class  IType_edf
 The type of kind edf. More...
 
class  IType_enum
 A type of kind enum. More...
 
class  IType_factory
 The interface for creating types. More...
 
class  IType_float
 The type of kind float. More...
 
class  IType_hair_bsdf
 The type of kind bsdf. More...
 
class  IType_int
 The type of kind int. More...
 
class  IType_light_profile
 The type of kind light_profile. More...
 
class  IType_list
 An ordered collection of types identified by name or index. More...
 
class  IType_matrix
 The type of kind matrix. More...
 
class  IType_reference
 The reference types. More...
 
class  IType_resource
 A string valued resource type. More...
 
class  IType_string
 The type of kind string. More...
 
class  IType_struct
 The type of kind struct. More...
 
class  IType_texture
 The type of kind texture. More...
 
class  IType_vdf
 The type of kind vdf. More...
 
class  IType_vector
 The type of kind vector. More...
 
class  IValue
 The interface to MDL values. More...
 
class  IValue_array
 A value of type array. More...
 
class  IValue_atomic
 An atomic value. More...
 
class  IValue_bool
 A value of type boolean. More...
 
class  IValue_bsdf_measurement
 A BSDF measurement value. More...
 
class  IValue_color
 A value of type color. More...
 
class  IValue_compound
 A compound value. More...
 
class  IValue_double
 A value of type double. More...
 
class  IValue_enum
 A value of type enum. More...
 
class  IValue_factory
 The interface for creating values. More...
 
class  IValue_float
 A value of type float. More...
 
class  IValue_int
 A value of type integer. More...
 
class  IValue_invalid_df
 An invalid distribution function value. More...
 
class  IValue_light_profile
 A light profile value. More...
 
class  IValue_list
 An ordered collection of values identified by name or index. More...
 
class  IValue_matrix
 A value of type matrix. More...
 
class  IValue_resource
 Base class for resource values. More...
 
class  IValue_string
 A value of type string. More...
 
class  IValue_string_localized
 A value of type string which can be used to obtain the original, non-localized value of a localized string. More...
 
class  IValue_struct
 A value of type struct. More...
 
class  IValue_texture
 A texture value. More...
 
class  IValue_vector
 A value of type vector. More...
 
class  IVersion
 Abstract interface for accessing version information. More...
 
class  IWriter
 A writer supports binary block writes and string-oriented line writes that accept a zero-terminated string as argument. More...
 
struct  Resource_data
 The data structure providing access to resources for generated code. More...
 
struct  Shading_state_environment
 The MDL environment state structure inside the MDL SDK is a representation of the renderer state in the context of an environment lookup as defined in section 19 "Renderer state" in the MDL specification. More...
 
struct  Shading_state_material_impl
 The MDL material state structure inside the MDL SDK is a representation of the renderer state as defined in section 19 "Renderer state" in the MDL specification. More...
 
struct  Target_function_description
 Description of target function. More...
 
struct  Target_value_layout_state
 Structure representing the state during traversal of the nested layout. More...
 
struct  tct_deriv
 A template struct with derivatives. More...
 
struct  tct_traits
 Helper traits struct to switch between derivative and non-derivative types. More...
 
struct  Texture_handler_base
 The texture handler structure that is passed to the texturing functions. More...
 
struct  Texture_handler_deriv_base
 The texture handler structure that is passed to the texturing functions with derivative support. More...
 
struct  Texture_handler_vtable_impl
 The runtime for bitmap texture access for the generated target code can optionally be implemented in form of a vtable as specified by this structure. More...
 

Typedefs

typedef float tct_float
 A float. More...
 
typedef mi::Float32_2_struct tct_float2
 A float2. More...
 
typedef mi::Float32_3_struct tct_float3
 A float3. More...
 
typedef mi::Float32_4_struct tct_float4
 A float4. More...
 
typedef mi::Sint32 tct_int
 An int. More...
 
typedef mi::Uint32 tct_uint
 An unsigned int. More...
 
typedef bool tct_bool
 A bool. More...
 
typedef tct_traits<true>::tct_derivable_float tct_deriv_float
 A float with derivatives. More...
 
typedef tct_traits<true>::tct_derivable_float2 tct_deriv_float2
 A float2 with derivatives. More...
 
typedef tct_traits<true>::tct_derivable_float3 tct_deriv_float3
 A float3 with derivatives. More...
 
typedef tct_traits<true>::tct_derivable_float4 tct_deriv_float4
 A float4 with derivatives. More...
 
typedef tct_deriv< float[2]> tct_deriv_arr_float_2
 A float[2] with derivatives (needed to avoid problems with wrong alignment). More...
 
typedef tct_deriv< float[3]> tct_deriv_arr_float_3
 A float[3] with derivatives (needed to avoid problems with wrong alignment). More...
 
typedef tct_deriv< float[4]> tct_deriv_arr_float_4
 A float[4] with derivatives (needed to avoid problems with wrong alignment). More...
 
typedef struct Shading_state_material_impl<false> Shading_state_material
 The MDL material state structure. More...
 
typedef struct Shading_state_material_impl<true> Shading_state_material_with_derivs
 The MDL material state structure with derivatives for the texture coordinates. More...
 
typedef Texture_handler_vtable_impl<false> Texture_handler_vtable
 The texture handler vtable struct. More...
 
typedef Texture_handler_vtable_impl<true> Texture_handler_deriv_vtable
 The texture handler vtable struct with derivatives for the texture coordinates. More...
 
typedef void() Environment_function(void *result, Shading_state_environment const *state, Resource_data const *res_data, char const *arg_block_data)
 Signature of environment functions created via mi::neuraylib::IMdl_backend::translate_environment() and mi::neuraylib::ILink_unit::add_function(). More...
 
typedef void() Material_expr_function(void *result, Shading_state_material const *state, Resource_data const *res_data, char const *arg_block_data)
 Signature of material expression functions created via mi::neuraylib::IMdl_backend::translate_material_expression() and mi::neuraylib::ILink_unit::add_material_expression(). More...
 
typedef void() Material_expr_function_with_derivs(void *result, Shading_state_material_with_derivs const *state, Resource_data const *res_data, char const *arg_block_data)
 Signature of material expression functions created via mi::neuraylib::IMdl_backend::translate_material_expression() and mi::neuraylib::ILink_unit::add_material_expression(). More...
 
typedef void() Bsdf_init_function(Shading_state_material *state, Resource_data const *res_data, char const *arg_block_data)
 Signature of the initialization function for material distribution functions created via mi::neuraylib::IMdl_backend::translate_material_df() and mi::neuraylib::ILink_unit::add_material_df(). More...
 
typedef void() Bsdf_init_function_with_derivs(Shading_state_material_with_derivs *state, Resource_data const *res_data, char const *arg_block_data)
 Signature of the initialization function for material distribution functions created via mi::neuraylib::IMdl_backend::translate_material_df() and mi::neuraylib::ILink_unit::add_material_df(). More...
 
typedef void() Bsdf_sample_function(Bsdf_sample_data *data, Shading_state_material const *state, Resource_data const *res_data, char const *arg_block_data)
 Signature of the importance sampling function for material distribution functions created via mi::neuraylib::IMdl_backend::translate_material_df() and mi::neuraylib::ILink_unit::add_material_df(). More...
 
typedef void() Bsdf_sample_function_with_derivs(Bsdf_sample_data *data, Shading_state_material_with_derivs const *state, Resource_data const *res_data, char const *arg_block_data)
 Signature of the importance sampling function for material distribution functions created via mi::neuraylib::IMdl_backend::translate_material_df() and mi::neuraylib::ILink_unit::add_material_df(). More...
 
typedef void() Bsdf_evaluate_function(Bsdf_evaluate_data_base *data, Shading_state_material const *state, Resource_data const *res_data, char const *arg_block_data)
 Signature of the evaluation function for material distribution functions created via mi::neuraylib::IMdl_backend::translate_material_df() and mi::neuraylib::ILink_unit::add_material_df(). More...
 
typedef void() Bsdf_evaluate_function_with_derivs(Bsdf_evaluate_data_base *data, Shading_state_material_with_derivs const *state, Resource_data const *res_data, char const *arg_block_data)
 Signature of the evaluation function for material distribution functions created via mi::neuraylib::IMdl_backend::translate_material_df() and mi::neuraylib::ILink_unit::add_material_df(). More...
 
typedef void() Bsdf_pdf_function(Bsdf_pdf_data *data, Shading_state_material const *state, Resource_data const *res_data, char const *arg_block_data)
 Signature of the probability density function for material distribution functions created via mi::neuraylib::IMdl_backend::translate_material_df() and mi::neuraylib::ILink_unit::add_material_df(). More...
 
typedef void() Bsdf_pdf_function_with_derivs(Bsdf_pdf_data *data, Shading_state_material_with_derivs const *state, Resource_data const *res_data, char const *arg_block_data)
 Signature of the probability density function for material distribution functions created via mi::neuraylib::IMdl_backend::translate_material_df() and mi::neuraylib::ILink_unit::add_material_df(). More...
 
typedef void() Bsdf_auxiliary_function(Bsdf_auxiliary_data_base *data, Shading_state_material const *state, Resource_data const *res_data, char const *arg_block_data)
 Signature of the auxiliary function for material distribution functions created via mi::neuraylib::IMdl_backend::translate_material_df() and mi::neuraylib::ILink_unit::add_material_df(). More...
 
typedef void() Bsdf_auxiliary_function_with_derivs(Bsdf_auxiliary_data_base *data, Shading_state_material_with_derivs const *state, Resource_data const *res_data, char const *arg_block_data)
 Signature of the auxiliary function for material distribution functions created via mi::neuraylib::IMdl_backend::translate_material_df() and mi::neuraylib::ILink_unit::add_material_df(). More...
 
typedef void() Edf_init_function(Shading_state_material *state, Resource_data const *res_data, char const *arg_block_data)
 Signature of the initialization function for material distribution functions created via mi::neuraylib::IMdl_backend::translate_material_df() and mi::neuraylib::ILink_unit::add_material_df(). More...
 
typedef void() Edf_init_function_with_derivs(Shading_state_material_with_derivs *state, Resource_data const *res_data, char const *arg_block_data)
 Signature of the initialization function for material distribution functions created via mi::neuraylib::IMdl_backend::translate_material_df() and mi::neuraylib::ILink_unit::add_material_df(). More...
 
typedef void() Edf_sample_function(Edf_sample_data *data, Shading_state_material const *state, Resource_data const *res_data, char const *arg_block_data)
 Signature of the importance sampling function for material distribution functions created via mi::neuraylib::IMdl_backend::translate_material_df() and mi::neuraylib::ILink_unit::add_material_df(). More...
 
typedef void() Edf_sample_function_with_derivs(Edf_sample_data *data, Shading_state_material_with_derivs const *state, Resource_data const *res_data, char const *arg_block_data)
 Signature of the importance sampling function for material distribution functions created via mi::neuraylib::IMdl_backend::translate_material_df() and mi::neuraylib::ILink_unit::add_material_df(). More...
 
typedef void() Edf_evaluate_function(Edf_evaluate_data_base *data, Shading_state_material const *state, Resource_data const *res_data, char const *arg_block_data)
 Signature of the evaluation function for material distribution functions created via mi::neuraylib::IMdl_backend::translate_material_df() and mi::neuraylib::ILink_unit::add_material_df(). More...
 
typedef void() Edf_evaluate_function_with_derivs(Edf_evaluate_data_base *data, Shading_state_material_with_derivs const *state, Resource_data const *res_data, char const *arg_block_data)
 Signature of the evaluation function for material distribution functions created via mi::neuraylib::IMdl_backend::translate_material_df() and mi::neuraylib::ILink_unit::add_material_df(). More...
 
typedef void() Edf_pdf_function(Edf_pdf_data *data, Shading_state_material const *state, Resource_data const *res_data, char const *arg_block_data)
 Signature of the probability density function for material distribution functions created via mi::neuraylib::IMdl_backend::translate_material_df() and mi::neuraylib::ILink_unit::add_material_df(). More...
 
typedef void() Edf_pdf_function_with_derivs(Edf_pdf_data *data, Shading_state_material_with_derivs const *state, Resource_data const *res_data, char const *arg_block_data)
 Signature of the probability density function for material distribution functions created via mi::neuraylib::IMdl_backend::translate_material_df() and mi::neuraylib::ILink_unit::add_material_df(). More...
 
typedef void() Edf_auxiliary_function(Edf_auxiliary_data_base *data, Shading_state_material const *state, Resource_data const *res_data, char const *arg_block_data)
 Signature of the auxiliary function for material distribution functions created via mi::neuraylib::IMdl_backend::translate_material_df() and mi::neuraylib::ILink_unit::add_material_df(). More...
 
typedef void() Edf_auxiliary_function_with_derivs(Edf_auxiliary_data_base *data, Shading_state_material_with_derivs const *state, Resource_data const *res_data, char const *arg_block_data)
 Signature of the auxiliary function for material distribution functions created via mi::neuraylib::IMdl_backend::translate_material_df() and mi::neuraylib::ILink_unit::add_material_df(). More...
 

Enumerations

enum  Propagation_type {
  PROPAGATION_STANDARD ,
  PROPAGATION_OVERRIDE ,
  PROPAGATION_FORCE_32_BIT = 0xffffffffU
}
 Propagation types for attribute inheritance. More...
 
enum  Bsdf_type {
  BSDF_SCALAR = 0 ,
  BSDF_RGB = 1 ,
  BSDF_TYPES_FORCE_32_BIT = 0xffffffffU
}
 The BSDF type. More...
 
enum  Material_slot {
  SLOT_THIN_WALLED ,
  SLOT_SURFACE_SCATTERING ,
  SLOT_SURFACE_EMISSION_EDF_EMISSION ,
  SLOT_SURFACE_EMISSION_INTENSITY ,
  SLOT_SURFACE_EMISSION_MODE ,
  SLOT_BACKFACE_SCATTERING ,
  SLOT_BACKFACE_EMISSION_EDF_EMISSION ,
  SLOT_BACKFACE_EMISSION_INTENSITY ,
  SLOT_BACKFACE_EMISSION_MODE ,
  SLOT_IOR ,
  SLOT_VOLUME_SCATTERING ,
  SLOT_VOLUME_ABSORPTION_COEFFICIENT ,
  SLOT_VOLUME_SCATTERING_COEFFICIENT ,
  SLOT_VOLUME_EMISSION_INTENSITY ,
  SLOT_GEOMETRY_DISPLACEMENT ,
  SLOT_GEOMETRY_CUTOUT_OPACITY ,
  SLOT_GEOMETRY_NORMAL ,
  SLOT_HAIR ,
  SLOT_FIRST = SLOT_THIN_WALLED ,
  SLOT_LAST = SLOT_HAIR ,
  SLOT_FORCE_32_BIT = 0xffffffffU
}
 Material slots identify parts of a compiled material. More...
 
enum  Material_opacity {
  OPACITY_OPAQUE ,
  OPACITY_TRANSPARENT ,
  OPACITY_UNKNOWN ,
  OPACITY_FORCE_32_BIT = 0xffffffffU
}
 The opacity of a compiled material. More...
 
enum  Mdl_version {
  MDL_VERSION_1_0 ,
  MDL_VERSION_1_1 ,
  MDL_VERSION_1_2 ,
  MDL_VERSION_1_3 ,
  MDL_VERSION_1_4 ,
  MDL_VERSION_1_5 ,
  MDL_VERSION_1_6 ,
  MDL_VERSION_1_7 ,
  MDL_VERSION_1_8 ,
  MDL_VERSION_1_9 ,
  MDL_VERSION_EXP ,
  MDL_VERSION_LATEST = MDL_VERSION_1_9 ,
  MDL_VERSION_INVALID = 0xffffffffU ,
  MDL_VERSION_FORCE_32_BIT = 0xffffffffU
}
 The MDL version. More...
 
enum  Mdl_repair_options {
  MDL_REPAIR_DEFAULT = 0 ,
  MDL_REMOVE_INVALID_ARGUMENTS = 1 ,
  MDL_REPAIR_INVALID_ARGUMENTS = 2 ,
  MDL_REPAIR_OPTIONS_FORCE_32_BIT = 0xffffffffU
}
 Options for repairing function calls. More...
 
enum  Impexp_priority {
  IMPEXP_PRIORITY_OVERRIDE = 4 ,
  IMPEXP_PRIORITY_WELL_DEFINED = 3 ,
  IMPEXP_PRIORITY_AMBIGUOUS = 2 ,
  IMPEXP_PRIORITY_GUESS = 1 ,
  IMPEXP_PRIORITY_FORCE_32_BIT = 0xffffffffU
}
 Confidence in capabilities of an importer or exporter. More...
 
enum  Lightprofile_flags {
  LIGHTPROFILE_CLOCKWISE = 1 ,
  LIGHTPROFILE_COUNTER_CLOCKWISE = 2 ,
  LIGHTPROFILE_ROTATE_TYPE_B = 4 ,
  LIGHTPROFILE_ROTATE_TYPE_C_90_270 = 8 ,
  LIGHTPROFILE_FLAGS_FORCE_32_BIT = 0xffffffffU
}
 Ordering of horizontal angles in a light profile. More...
 
enum  Lightprofile_degree {
  LIGHTPROFILE_HERMITE_BASE_1 = 1 ,
  LIGHTPROFILE_HERMITE_BASE_3 = 3 ,
  LIGHTPROFILE_DEGREE_FORCE_32_BIT = 0xffffffffU
}
 Degree of hermite interpolation. More...
 
enum  Log_prefix {
  LOG_PREFIX_TIME = 0x0001 ,
  LOG_PREFIX_TIME_SECONDS = 0x0002 ,
  LOG_PREFIX_HOST_THREAD = 0x0004 ,
  LOG_PREFIX_HOST_NAME = 0x0008 ,
  LOG_PREFIX_MODULE = 0x0010 ,
  LOG_PREFIX_CATEGORY = 0x0020 ,
  LOG_PREFIX_SEVERITY = 0x0040 ,
  LOG_PREFIX_CUDA_DEVICE = 0x0080 ,
  LOG_PREFIX_TAGS = 0x0100 ,
  LOG_PREFIX_FORCE_32_BIT = 0xffffffffU
}
 Components of the log message prefix. More...
 
enum  Df_data_kind
 Possible kinds of distribution function data. More...
 
enum  Baker_resource {
  BAKE_ON_CPU ,
  BAKE_ON_GPU ,
  BAKE_ON_GPU_WITH_CPU_FALLBACK ,
  BAKER_RESOURCE_FORCE_32_BIT = 0xffffffffU
}
 Identifies the resource(s) to be used by a baker. More...
 
enum  Uvtile_mode {
  UVTILE_MODE_NONE = 0 ,
  UVTILE_MODE_UDIM = 1 ,
  UVTILE_MODE_UVTILE0 = 2 ,
  UVTILE_MODE_UVTILE1 = 3 ,
  UVTILE_MODE_FORCE_32_BIT = 0xffffffffU
}
 Supported uvtile modes for resources. More...
 
enum  Element_type {
  ELEMENT_TYPE_LIGHTPROFILE = 5 ,
  ELEMENT_TYPE_TEXTURE = 7 ,
  ELEMENT_TYPE_IMAGE = 8 ,
  ELEMENT_TYPE_MODULE = 29 ,
  ELEMENT_TYPE_FUNCTION_DEFINITION = 30 ,
  ELEMENT_TYPE_FUNCTION_CALL = 31 ,
  ELEMENT_TYPE_MATERIAL_INSTANCE = 33 ,
  ELEMENT_TYPE_COMPILED_MATERIAL = 34 ,
  ELEMENT_TYPE_BSDF_MEASUREMENT = 35 ,
  ELEMENT_TYPE_FORCE_32_BIT = 0xffffffffU
}
 Distinguishes scene elements. More...
 
enum  Texture_compression {
  TEXTURE_NO_COMPRESSION = 0 ,
  TEXTURE_MEDIUM_COMPRESSION = 1 ,
  TEXTURE_HIGH_COMPRESSION = 2 ,
  TEXTURE_COMPRESSION_FORCE_32_BIT = 0xffffffffU
}
 Texture compression method. More...
 
enum  Filter_type {
  FILTER_BOX = 0 ,
  FILTER_TRIANGLE = 1 ,
  FILTER_GAUSS = 2 ,
  FILTER_CMITCHELL = 3 ,
  FILTER_CLANCZOS = 4 ,
  FILTER_FAST = 5 ,
  FILTER_FORCE_32_BIT = 0xffffffffU
}
 Supported filter types. More...
 
enum  Tex_wrap_mode {
  TEX_WRAP_CLAMP = 0 ,
  TEX_WRAP_REPEAT = 1 ,
  TEX_WRAP_MIRRORED_REPEAT = 2 ,
  TEX_WRAP_CLIP = 3
}
 The texture wrap modes as defined by tex::wrap_mode in the MDL specification. More...
 
enum  Mbsdf_part {
  MBSDF_DATA_REFLECTION = 0 ,
  MBSDF_DATA_TRANSMISSION = 1
}
 MBSDFs can consist of two parts, which can be selected using this enumeration. More...
 
enum  Bsdf_event_type
 The type of events created by BSDF importance sampling. More...
 
enum  Df_flags { DF_FLAGS_NONE = 0 , DF_FLAGS_ALLOW_REFLECT = 1 , DF_FLAGS_ALLOW_TRANSMIT = 2 , DF_FLAGS_ALLOW_REFLECT_AND_TRANSMIT = DF_FLAGS_ALLOW_REFLECT | DF_FLAGS_ALLOW_TRANSMIT , DF_FLAGS_ALLOWED_SCATTER_MODE_MASK = DF_FLAGS_ALLOW_REFLECT_AND_TRANSMIT , DF_FLAGS_FORCE_32_BIT = 0xffffffffU }
 Flags controlling the calculation of DF results. More...
 
enum  Df_handle_slot_mode {
  DF_HSM_POINTER = -2 ,
  DF_HSM_NONE = -1 ,
  DF_HSM_FIXED_1 = 1 ,
  DF_HSM_FIXED_2 = 2 ,
  DF_HSM_FIXED_4 = 4 ,
  DF_HSM_FIXED_8 = 8
}
 Type of Bsdf_evaluate_data variants, depending on the backend and its configuration. More...
 
enum  Edf_event_type
 The type of events created by EDF importance sampling. More...
 

Functions

template<class T>
T * mi_factory (void *symbol)
 Convenience function to ease the use of mi_factory(). More...
 
Uint32_2 get_resolution (const ICanvas_base &canvas)
 Convenience function which returns a canvas' resolution in a struct. More...
 
template<class T>
mi::Sint32 set_value (mi::neuraylib::IValue *value, const T &v)
 Simplifies setting the value of mi::neuraylib::IValue from the corresponding classes from the base and math API. More...
 
mi::Sint32 set_value (mi::neuraylib::IValue *value, const bool &v)
 This specialization handles mi::neuraylib::IValue_bool. More...
 
mi::Sint32 set_value (mi::neuraylib::IValue *value, const mi::Float32 &v)
 This specialization handles mi::neuraylib::IValue_float and mi::neuraylib::IValue_double. More...
 
mi::Sint32 set_value (mi::neuraylib::IValue *value, const mi::Float64 &v)
 This specialization handles mi::neuraylib::IValue_float and mi::neuraylib::IValue_double. More...
 
mi::Sint32 set_value (mi::neuraylib::IValue *value, const char *v)
 This specialization handles mi::neuraylib::IValue_enum, mi::neuraylib::IValue_string and mi::neuraylib::IValue_resource. More...
 
template<class T , Size DIM>
mi::Sint32 set_value (mi::neuraylib::IValue *value, const mi::math::Vector<T, DIM> &v)
 This specialization handles mi::neuraylib::IValue_vector. More...
 
template<class T , Size ROW, Size COL>
mi::Sint32 set_value (mi::neuraylib::IValue *value, const mi::math::Matrix<T, ROW, COL> &v)
 This specialization handles mi::neuraylib::IValue_matrix. More...
 
mi::Sint32 set_value (mi::neuraylib::IValue *value, const mi::math::Color &v)
 This specialization handles mi::neuraylib::IValue_color. More...
 
mi::Sint32 set_value (mi::neuraylib::IValue *value, const mi::math::Spectrum &v)
 This specialization handles mi::neuraylib::IValue_color. More...
 
template<class T>
mi::Sint32 set_value (mi::neuraylib::IValue *value, mi::Size index, const T &v)
 This variant handles elements of compounds identified via an additional index. More...
 
template<class T>
mi::Sint32 set_value (mi::neuraylib::IValue *value, const char *name, const T &v)
 This variant handles fields of structs identified via an additional field name. More...
 
template<class T>
mi::Sint32 set_value (mi::neuraylib::IValue *value, const T *v, mi::Size n)
 This variant handles entire arrays. More...
 
template<class T>
mi::Sint32 get_value (const mi::neuraylib::IValue *value, T &v)
 Simplifies reading the value of mi::neuraylib::IValue into the corresponding classes from the base and math API. More...
 
mi::Sint32 get_value (const mi::neuraylib::IValue *value, bool &v)
 This specialization handles mi::neuraylib::IValue_bool. More...
 
mi::Sint32 get_value (const mi::neuraylib::IValue *value, mi::Float32 &v)
 This specialization handles mi::neuraylib::IValue_float and mi::neuraylib::IValue_double. More...
 
mi::Sint32 get_value (const mi::neuraylib::IValue *value, mi::Float64 &v)
 This specialization handles mi::neuraylib::IValue_float and mi::neuraylib::IValue_double. More...
 
mi::Sint32 get_value (const mi::neuraylib::IValue *value, const char *&v)
 This specialization handles mi::neuraylib::IValue_enum, mi::neuraylib::IValue_string and mi::neuraylib::IValue_resource. More...
 
template<class T , Size DIM>
mi::Sint32 get_value (const mi::neuraylib::IValue *value, mi::math::Vector<T, DIM> &v)
 This specialization handles mi::neuraylib::IValue_vector. More...
 
template<class T , Size ROW, Size COL>
mi::Sint32 get_value (const mi::neuraylib::IValue *value, mi::math::Matrix<T, ROW, COL> &v)
 This specialization handles mi::neuraylib::IValue_matrix. More...
 
mi::Sint32 get_value (const mi::neuraylib::IValue *value, mi::math::Color &v)
 This specialization handles mi::neuraylib::IValue_color. More...
 
mi::Sint32 get_value (const mi::neuraylib::IValue *value, mi::math::Spectrum &v)
 This specialization handles mi::neuraylib::IValue_color. More...
 
template<class T>
mi::Sint32 get_value (const mi::neuraylib::IValue *value, mi::Size index, T &v)
 This variant handles elements of compounds identified via an additional index. More...
 
template<class T>
mi::Sint32 get_value (const mi::neuraylib::IValue *value, const char *name, T &v)
 This variant handles fields of structs identified via an additional field name. More...
 
template<class T>
mi::Sint32 get_value (const mi::neuraylib::IValue *value, T *v, mi::Size n)
 This variant handles entire arrays. More...
 

Detailed Description

Namespace for the MDL SDK API.

Function Documentation

 mi_factory()

template<class T>
T * mi::neuraylib::mi_factory ( void *  symbol)

Convenience function to ease the use of mi_factory().

Parameters
symbolpointer to the mi_factory symbol.
Returns
a pointer to an interface of type T or NULL if the interface could not be retrieved. See mi_factory for supported interfaces.