Material Definition Language API nvidia_logo_transpbg.gif Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
mi::neuraylib Namespace Reference

Namespace for the MDL API. More...

Classes

class  Argument_editor
 A wrapper around the interfaces for MDL material instances and function calls. More...
 
class  Definition_wrapper
 A wrapper around the interfaces for MDL material and function definitions. More...
 
class  Bsdf_buffer
 Example implementation of the abstract interface mi::neuraylib::IBsdf_buffer. More...
 
class  Bsdf_isotropic_data
 Example implementation of the abstract interface mi::neuraylib::IBsdf_isotropic_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  IAttribute_set
 The attribute set comprises all attributes attached to a database element. More...
 
class  IBsdf_isotropic_data
 Abstract interface for isotropic BSDF data. More...
 
class  IBsdf_buffer
 Abstract interface for a buffer of BSDF values. More...
 
class  IBsdf_measurement
 A scene element that stores measured BSDF data. More...
 
class  ICanvas_base
 Abstract interface for a canvas (base class). More...
 
class  ICanvas
 Abstract interface for a canvas represented by a rectangular array of tiles. 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  IExpression
 The interface to MDL expressions. More...
 
class  IExpression_constant
 A constant expression. More...
 
class  IExpression_call
 An indirect call expression. More...
 
class  IExpression_parameter
 A parameter reference expression. More...
 
class  IExpression_direct_call
 A direct call expression. More...
 
class  IExpression_temporary
 A temporary reference expression. More...
 
class  IExpression_list
 An ordered collection of expressions identified by name or index. More...
 
class  IAnnotation_definition
 An annotation definition. More...
 
class  IAnnotation
 An annotation is similar to a direct call expression, but without return type. Its definition can be obtained by calling mi::neuraylib::IAnnotation::get_definition(). More...
 
class  IAnnotation_block
 An annotation block is an array of annotations. More...
 
class  IAnnotation_list
 An ordered collection of annotation blocks identified by name or index. More...
 
class  IExpression_factory
 The interface for creating expressions. More...
 
class  IFactory
 This API component allows the creation, assignment, and cloning of instances of types. It also provides a comparison function for 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. It supports different pixel types, 2D and 3D image data, and mipmap levels. Its main usage is in textures, see the mi::neuraylib::ITexture class. More...
 
class  IImage_api
 This interface provides various utilities related to canvases and buffers. More...
 
class  ILightprofile
 This interface represents light profiles. More...
 
class  IMaterial_definition
 This interface represents a material definition. 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  IManifest
 Represents the manifest in an MDL archive. More...
 
class  IMdl_backend_api
 This interface can be used to obtain the MDL backends. More...
 
class  IMdl_backend
 MDL backends allow to transform compiled material instances or function calls into target code. 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_argument_block
 Represents an argument block of a class-compiled material compiled for a specific target. More...
 
struct  Target_value_layout_state
 Structure representing the state during traversal of the nested layout. More...
 
class  ITarget_value_layout
 Represents the layout of an mi::neuraylib::ITarget_argument_block with support for nested elements. More...
 
class  ITarget_code
 Represents target code of an MDL backend. More...
 
class  ILink_unit
 Represents a link-unit of an MDL backend. More...
 
struct  Target_function_description
 Description of target function. More...
 
class  IMdl_compiler
 The MDL compiler allows to register builtin modules. More...
 
class  IMdl_compatibility_api
 Provides access to various functions to inspect the compatibility between MDL modules and archives. More...
 
class  IMdl_configuration
 This interface can be used to query and change the MDL configuration. More...
 
class  IMdl_info
 Abstract interface for a discovery graph node. It provides the common functionality of all different discovery graph node interfaces. More...
 
class  IMdl_module_info
 Interface for a graph node representing an MDL module. More...
 
class  IMdl_xliff_info
 Interface for xliff files. More...
 
class  IMdl_resource_info
 Interface for resources. More...
 
class  IMdl_texture_info
 Interface for texture files. More...
 
class  IMdl_lightprofile_info
 Interface for lightprofile files. More...
 
class  IMdl_measured_bsdf_info
 Interface for measured bsdf files. More...
 
class  IMdl_package_info
 Interface for a graph node representing an MDL package. More...
 
class  IMdl_discovery_result
 Interface for the discovery result. More...
 
class  IMdl_discovery_api
 Interface for the discovery API. More...
 
class  IMdl_distiller_api
 Provides access to various functionality related to MDL distilling. More...
 
class  IBaker
 Allows to bake a varying or uniform expression of a compiled material into a texture or constant. 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  IMessage
 Message interface. 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_evaluator_api
 Provides access to various functions for the evaluation of MDL expressions. More...
 
class  IMdl_factory
 Factory for various MDL interfaces and functions. More...
 
class  IMdl_module_transformer
 The module transformer allows to apply certain transformations on an MDL module. More...
 
class  IMdle_api
 Provides access to functions related to the creation of encapsulated MDL modules (MDLE). More...
 
class  IModule
 This interface represents an MDL module. More...
 
class  INeuray
 This is an object representing the MDL API library. Only one object of this type will exist at a time. It is used for configuration, startup and shutdown of the MDL API library. 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  IStream_position
 Represents the position in a data stream. 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_atomic
 An atomic type. More...
 
class  IType_bool
 The type of kind bool. More...
 
class  IType_int
 The type of kind int. More...
 
class  IType_enum
 A type of kind enum. More...
 
class  IType_float
 The type of kind float. More...
 
class  IType_double
 The type of kind double. More...
 
class  IType_string
 The type of kind string. More...
 
class  IType_compound
 A compound type. More...
 
class  IType_vector
 The type of kind vector. More...
 
class  IType_matrix
 The type of kind matrix. More...
 
class  IType_color
 The type of kind color. More...
 
class  IType_array
 The type of kind array. More...
 
class  IType_struct
 The type of kind struct. More...
 
class  IType_reference
 The reference types. More...
 
class  IType_resource
 A string valued resource type. More...
 
class  IType_texture
 The type of kind texture. More...
 
class  IType_light_profile
 The type of kind light_profile. More...
 
class  IType_bsdf_measurement
 The type of kind bsdf_measurement. More...
 
class  IType_df
 The type of distribution functions. More...
 
class  IType_bsdf
 The type of kind bsdf. More...
 
class  IType_hair_bsdf
 The type of kind bsdf. More...
 
class  IType_edf
 The type of kind edf. More...
 
class  IType_vdf
 The type of kind vdf. More...
 
class  IType_list
 An ordered collection of types identified by name or index. More...
 
class  IType_factory
 The interface for creating types. More...
 
class  IValue
 The interface to MDL values. More...
 
class  IValue_atomic
 An atomic value. More...
 
class  IValue_bool
 A value of type boolean. More...
 
class  IValue_int
 A value of type integer. More...
 
class  IValue_enum
 A value of type enum. More...
 
class  IValue_float
 A value of type float. More...
 
class  IValue_double
 A value of type double. 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_compound
 A compound value. More...
 
class  IValue_vector
 A value of type vector. More...
 
class  IValue_matrix
 A value of type matrix. More...
 
class  IValue_color
 A value of type color. More...
 
class  IValue_array
 A value of type array. More...
 
class  IValue_struct
 A value of type struct. More...
 
class  IValue_resource
 Base class for resource values. More...
 
class  IValue_texture
 A texture value. More...
 
class  IValue_light_profile
 A light profile value. More...
 
class  IValue_bsdf_measurement
 A BSDF measurement value. More...
 
class  IValue_invalid_df
 An invalid distribution function value. More...
 
class  IValue_list
 An ordered collection of values identified by name or index. More...
 
class  IValue_factory
 The interface for creating values. 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  tct_deriv
 A template struct with derivatives. More...
 
struct  tct_traits
 Helper traits struct to switch between derivative and non-derivative types. 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  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...
 
struct  Texture_handler_base
 The texture handler structure that is passed to the texturing functions. A user can derive from this structure and add custom fields as required by the texturing function implementations. More...
 
struct  Texture_handler_deriv_base
 The texture handler structure that is passed to the texturing functions with derivative support. A user can derive from this structure and add custom fields as required by the texturing function implementations. More...
 
struct  Resource_data
 The data structure providing access to resources for generated code. More...
 
struct  Bsdf_sample_data
 Input and output structure for BSDF sampling data. More...
 
struct  Bsdf_evaluate_data_base
 Input and output structure for BSDF evaluation data. More...
 
struct  Bsdf_pdf_data
 Input and output structure for BSDF PDF calculation data. More...
 
struct  Bsdf_auxiliary_data_base
 Input and output structure for BSDF auxiliary calculation data. More...
 
struct  Edf_sample_data
 Input and output structure for EDF sampling 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_auxiliary_data_base
 Input and output structure for EDF auxiliary calculation data. 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, void const *exception_state, char const *arg_block_data)
 Signature of environment functions created via mi::neuraylib::IMdl_backend::translate_environment() and mi::neuraylib::ILink_unit::add_environment(). More...
 
typedef void( Material_expr_function )(void *result, Shading_state_material const *state, Resource_data const *res_data, void const *exception_state, 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, void const *exception_state, 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, void const *exception_state, 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, void const *exception_state, 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, void const *exception_state, 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, void const *exception_state, 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, void const *exception_state, 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, void const *exception_state, 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, void const *exception_state, 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, void const *exception_state, 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, void const *exception_state, 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, void const *exception_state, 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, void const *exception_state, 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, void const *exception_state, 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, void const *exception_state, 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, void const *exception_state, 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, void const *exception_state, 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, void const *exception_state, 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, void const *exception_state, 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, void const *exception_state, 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, void const *exception_state, 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, void const *exception_state, 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 types for attribute inheritance. More...
 
enum  Bsdf_type {
  BSDF_SCALAR = 0,
  BSDF_RGB = 1
}
 The BSDF type. More...
 
enum  Material_slot {
  SLOT_THIN_WALLED,
  SLOT_SURFACE_SCATTERING,
  SLOT_SURFACE_EMISSION_EDF_EMISSION,
  SLOT_SURFACE_EMISSION_INTENSITY,
  SLOT_BACKFACE_SCATTERING,
  SLOT_BACKFACE_EMISSION_EDF_EMISSION,
  SLOT_BACKFACE_EMISSION_INTENSITY,
  SLOT_IOR,
  SLOT_VOLUME_SCATTERING,
  SLOT_VOLUME_ABSORPTION_COEFFICIENT,
  SLOT_VOLUME_SCATTERING_COEFFICIENT,
  SLOT_GEOMETRY_DISPLACEMENT,
  SLOT_GEOMETRY_CUTOUT_OPACITY,
  SLOT_GEOMETRY_NORMAL,
  SLOT_HAIR
}
 Material slots identify parts of a compiled material. More...
 
enum  Material_opacity {
  OPACITY_OPAQUE,
  OPACITY_TRANSPARENT,
  OPACITY_UNKNOWN
}
 The compiled material's opacity. More...
 
enum  Lightprofile_flags {
  LIGHTPROFILE_CLOCKWISE = 1,
  LIGHTPROFILE_COUNTER_CLOCKWISE = 2,
  LIGHTPROFILE_ROTATE_TYPE_B = 4,
  LIGHTPROFILE_ROTATE_TYPE_C_90_270 = 8
}
 Ordering of horizontal angles in a light profile. More...
 
enum  Lightprofile_degree {
  LIGHTPROFILE_HERMITE_BASE_1 = 1,
  LIGHTPROFILE_HERMITE_BASE_3 = 3
}
 Degree of hermite interpolation. 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
}
 Identifies the resource(s) to be used by a baker. More...
 
enum  Mdl_repair_options {
  MDL_REPAIR_DEFAULT = 0,
  MDL_REMOVE_INVALID_ARGUMENTS = 1,
  MDL_REPAIR_INVALID_ARGUMENTS = 2
}
 Options for repairing material instances and function calls. 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_INVALID = 0xffffffffU
}
 The MDL version. 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_DEFINITION = 32,
  ELEMENT_TYPE_MATERIAL_INSTANCE = 33,
  ELEMENT_TYPE_COMPILED_MATERIAL = 34,
  ELEMENT_TYPE_BSDF_MEASUREMENT = 35
}
 Distinguishes scene elements. More...
 
enum  Texture_compression {
  TEXTURE_NO_COMPRESSION = 0,
  TEXTURE_MEDIUM_COMPRESSION = 1,
  TEXTURE_HIGH_COMPRESSION = 2
}
 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
}
 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. It determines the texture lookup behavior if a lookup coordinate is exceeding the normalized half-open texture space range of [0, 1). 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_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...
 
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 get_value (const mi::neuraylib::IValue *value, T &v)
 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...
 

Detailed Description

Namespace for the MDL API.

Function Documentation

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.