Material Definition Language API nvidia_logo_transpbg.gif Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
MDL compiler

This module contains the MDL API components representing the MDL compiler, its backends and the generated target code. More...

Classes

class  mi::neuraylib::IMdl_compiler
 The MDL compiler allows to import and export .mdl files, to examine their contents, to create a compiled representation of these via a backend, and to export image canvases, light profiles and measured BSDF data. More...
 
class  mi::neuraylib::IMdl_backend
 MDL backends allow to transform compiled material instances or function calls into target code. More...
 
class  mi::neuraylib::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  mi::neuraylib::ITarget_argument_block
 Represents an argument block of a class-compiled material compiled for a specific target. More...
 
struct  mi::neuraylib::Target_value_layout_state
 Structure representing the state during traversal of the nested layout. More...
 
class  mi::neuraylib::ITarget_value_layout
 Represents the layout of an mi::neuraylib::ITarget_argument_block with support for nested elements. More...
 
class  mi::neuraylib::ITarget_code
 Represents target code of an MDL backend. More...
 
class  mi::neuraylib::ILink_unit
 Represents a link-unit of an MDL backend. More...
 
struct  mi::neuraylib::tct_deriv< T >
 A template struct with derivatives. More...
 
struct  mi::neuraylib::tct_traits< with_derivatives >
 Helper traits struct to switch between derivative and non-derivative types. More...
 
struct  mi::neuraylib::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  mi::neuraylib::Shading_state_material_impl< with_derivatives >
 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  mi::neuraylib::Texture_handler_vtable_impl< with_derivatives >
 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  mi::neuraylib::Texture_handler_base
 The texture handler structure that is passed to the texturing functions. More...
 
struct  mi::neuraylib::Texture_handler_deriv_base
 The texture handler structure that is passed to the texturing functions with derivative support. More...
 
struct  mi::neuraylib::Resource_data
 The data structure providing access to resources for generated code. More...
 
struct  mi::neuraylib::Bsdf_sample_data
 Input and output structure for BSDF sampling data. More...
 
struct  mi::neuraylib::Bsdf_evaluate_data
 Input and output structure for BSDF evaluation data. More...
 
struct  mi::neuraylib::Bsdf_pdf_data
 Input and output structure for BSDF PDF calculation data. More...
 
struct  mi::neuraylib::Edf_sample_data
 Input and output structure for EDF sampling data. More...
 
struct  mi::neuraylib::Edf_evaluate_data
 Input and output structure for EDF evaluation data. More...
 
struct  mi::neuraylib::Edf_pdf_data
 Input and output structure for EDF PDF calculation data. More...
 

Macros

#define MI_NEURAYLIB_BSDF_USE_MATERIAL_IOR   (-1.0f)
 The calling code can mark the x component of an IOR field in *_data with MI_NEURAYLIB_BSDF_USE_MATERIAL_IOR, to make the BSDF functions use the MDL material's IOR for this IOR field. More...
 

Typedefs

typedef float mi::neuraylib::tct_float
 A float. More...
 
typedef mi::Float32_2_struct mi::neuraylib::tct_float2
 A float2. More...
 
typedef mi::Float32_3_struct mi::neuraylib::tct_float3
 A float3. More...
 
typedef mi::Float32_4_struct mi::neuraylib::tct_float4
 A float4. More...
 
typedef mi::Sint32 mi::neuraylib::tct_int
 An int. More...
 
typedef mi::Uint32 mi::neuraylib::tct_uint
 An unsigned int. More...
 
typedef tct_traits< true >
::tct_derivable_float 
mi::neuraylib::tct_deriv_float
 A float with derivatives. More...
 
typedef tct_traits< true >
::tct_derivable_float2 
mi::neuraylib::tct_deriv_float2
 A float2 with derivatives. More...
 
typedef tct_traits< true >
::tct_derivable_float3 
mi::neuraylib::tct_deriv_float3
 A float3 with derivatives. More...
 
typedef tct_traits< true >
::tct_derivable_float4 
mi::neuraylib::tct_deriv_float4
 A float4 with derivatives. More...
 
typedef struct
Shading_state_material_impl
< false > 
mi::neuraylib::Shading_state_material
 The MDL material state structure. More...
 
typedef struct
Shading_state_material_impl
< true > 
mi::neuraylib::Shading_state_material_with_derivs
 The MDL material state structure with derivatives for the texture coordinates. More...
 
typedef
Texture_handler_vtable_impl
< false > 
mi::neuraylib::Texture_handler_vtable
 The texture handler vtable struct. More...
 
typedef
Texture_handler_vtable_impl
< true > 
mi::neuraylib::Texture_handler_deriv_vtable
 The texture handler vtable struct with derivatives for the texture coordinates. More...
 
typedef void( mi::neuraylib::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( mi::neuraylib::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( mi::neuraylib::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( mi::neuraylib::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( mi::neuraylib::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( mi::neuraylib::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( mi::neuraylib::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( mi::neuraylib::Bsdf_evaluate_function )(Bsdf_evaluate_data *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( mi::neuraylib::Bsdf_evaluate_function_with_derivs )(Bsdf_evaluate_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 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( mi::neuraylib::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( mi::neuraylib::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( mi::neuraylib::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( mi::neuraylib::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( mi::neuraylib::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( mi::neuraylib::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( mi::neuraylib::Edf_evaluate_function )(Edf_evaluate_data *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( mi::neuraylib::Edf_evaluate_function_with_derivs )(Edf_evaluate_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 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( mi::neuraylib::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( mi::neuraylib::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...
 

Enumerations

enum  mi::neuraylib::Tex_wrap_mode {
  mi::neuraylib::TEX_WRAP_CLAMP = 0,
  mi::neuraylib::TEX_WRAP_REPEAT = 1,
  mi::neuraylib::TEX_WRAP_MIRRORED_REPEAT = 2,
  mi::neuraylib::TEX_WRAP_CLIP = 3
}
 The texture wrap modes as defined by tex::wrap_mode in the MDL specification. More...
 
enum  mi::neuraylib::Mbsdf_part {
  mi::neuraylib::MBSDF_DATA_REFLECTION = 0,
  mi::neuraylib::MBSDF_DATA_TRANSMISSION = 1
}
 MBSDFs can consist of two parts, which can be selected using this enumeration. More...
 
enum  mi::neuraylib::Bsdf_event_type
 The type of events created by BSDF importance sampling. More...
 
enum  mi::neuraylib::Edf_event_type
 The type of events created by EDF importance sampling. More...
 

Detailed Description

This module contains the MDL API components representing the MDL compiler, its backends and the generated target code.

The MDL compiler can be obtained from mi::neuraylib::INeuray::get_api_component(). The backends can be obtained via the MDL compiler from mi::neuraylib::IMdl_compiler::get_backend().

Macro Definition Documentation

#define MI_NEURAYLIB_BSDF_USE_MATERIAL_IOR   (-1.0f)

The calling code can mark the x component of an IOR field in *_data with MI_NEURAYLIB_BSDF_USE_MATERIAL_IOR, to make the BSDF functions use the MDL material's IOR for this IOR field.

Typedef Documentation

typedef void( mi::neuraylib::Bsdf_evaluate_function)(Bsdf_evaluate_data *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().

Parameters
datathe input and output structure
statethe shading state
res_datathe resources
exception_stateunused, should be NULL
arg_block_datathe target argument block data, if class compilation was used
typedef void( mi::neuraylib::Bsdf_evaluate_function_with_derivs)(Bsdf_evaluate_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 evaluation function for material distribution functions created via mi::neuraylib::IMdl_backend::translate_material_df() and mi::neuraylib::ILink_unit::add_material_df().

Parameters
datathe input and output structure
statethe shading state
res_datathe resources
exception_stateunused, should be NULL
arg_block_datathe target argument block data, if class compilation was used
typedef void( mi::neuraylib::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().

This function updates the normal field of the shading state with the result of "geometry.normal" and, if the "num_texture_results" backend option has been set to non-zero, fills the text_results fields of the state.

Parameters
statethe shading state
res_datathe resources
exception_stateunused, should be NULL
arg_block_datathe target argument block data, if class compilation was used
typedef void( mi::neuraylib::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().

This function updates the normal field of the shading state with the result of "geometry.normal" and, if the "num_texture_results" backend option has been set to non-zero, fills the text_results fields of the state.

Parameters
statethe shading state
res_datathe resources
exception_stateunused, should be NULL
arg_block_datathe target argument block data, if class compilation was used
typedef void( mi::neuraylib::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().

Parameters
datathe input and output structure
statethe shading state
res_datathe resources
exception_stateunused, should be NULL
arg_block_datathe target argument block data, if class compilation was used
typedef void( mi::neuraylib::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().

Parameters
datathe input and output structure
statethe shading state
res_datathe resources
exception_stateunused, should be NULL
arg_block_datathe target argument block data, if class compilation was used
typedef void( mi::neuraylib::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().

Parameters
datathe input and output structure
statethe shading state
res_datathe resources
exception_stateunused, should be NULL
arg_block_datathe target argument block data, if class compilation was used
typedef void( mi::neuraylib::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().

Parameters
datathe input and output structure
statethe shading state
res_datathe resources
exception_stateunused, should be NULL
arg_block_datathe target argument block data, if class compilation was used
typedef void( mi::neuraylib::Edf_evaluate_function)(Edf_evaluate_data *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().

Parameters
datathe input and output structure
statethe shading state
res_datathe resources
exception_stateunused, should be NULL
arg_block_datathe target argument block data, if class compilation was used
typedef void( mi::neuraylib::Edf_evaluate_function_with_derivs)(Edf_evaluate_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 evaluation function for material distribution functions created via mi::neuraylib::IMdl_backend::translate_material_df() and mi::neuraylib::ILink_unit::add_material_df().

Parameters
datathe input and output structure
statethe shading state
res_datathe resources
exception_stateunused, should be NULL
arg_block_datathe target argument block data, if class compilation was used
typedef void( mi::neuraylib::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().

This function updates the normal field of the shading state with the result of "geometry.normal" and, if the "num_texture_results" backend option has been set to non-zero, fills the text_results fields of the state.

Parameters
statethe shading state
res_datathe resources
exception_stateunused, should be NULL
arg_block_datathe target argument block data, if class compilation was used
typedef void( mi::neuraylib::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().

This function updates the normal field of the shading state with the result of "geometry.normal" and, if the "num_texture_results" backend option has been set to non-zero, fills the text_results fields of the state.

Parameters
statethe shading state
res_datathe resources
exception_stateunused, should be NULL
arg_block_datathe target argument block data, if class compilation was used
typedef void( mi::neuraylib::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().

Parameters
datathe input and output structure
statethe shading state
res_datathe resources
exception_stateunused, should be NULL
arg_block_datathe target argument block data, if class compilation was used
typedef void( mi::neuraylib::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().

Parameters
datathe input and output structure
statethe shading state
res_datathe resources
exception_stateunused, should be NULL
arg_block_datathe target argument block data, if class compilation was used
typedef void( mi::neuraylib::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().

Parameters
datathe input and output structure
statethe shading state
res_datathe resources
exception_stateunused, should be NULL
arg_block_datathe target argument block data, if class compilation was used
typedef void( mi::neuraylib::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().

Parameters
datathe input and output structure
statethe shading state
res_datathe resources
exception_stateunused, should be NULL
arg_block_datathe target argument block data, if class compilation was used
typedef void( mi::neuraylib::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().

Parameters
resultpointer to the result buffer which must be large enough for the result
statethe shading state
res_datathe resources
exception_stateunused, should be NULL
arg_block_dataunused, should be NULL
typedef void( mi::neuraylib::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().

Parameters
resultpointer to the result buffer which must be large enough for the result
statethe shading state
res_datathe resources
exception_stateunused, should be NULL
arg_block_datathe target argument block data, if class compilation was used
typedef void( mi::neuraylib::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().

Parameters
resultpointer to the result buffer which must be large enough for the result
statethe shading state
res_datathe resources
exception_stateunused, should be NULL
arg_block_datathe target argument block data, if class compilation was used
typedef struct Shading_state_material_impl< false > mi::neuraylib::Shading_state_material

The MDL material state structure.

typedef struct Shading_state_material_impl< true > mi::neuraylib::Shading_state_material_with_derivs

The MDL material state structure with derivatives for the texture coordinates.

typedef tct_traits<true>::tct_derivable_float mi::neuraylib::tct_deriv_float

A float with derivatives.

typedef tct_traits<true>::tct_derivable_float2 mi::neuraylib::tct_deriv_float2

A float2 with derivatives.

typedef tct_traits<true>::tct_derivable_float3 mi::neuraylib::tct_deriv_float3

A float3 with derivatives.

typedef tct_traits<true>::tct_derivable_float4 mi::neuraylib::tct_deriv_float4

A float4 with derivatives.

typedef float mi::neuraylib::tct_float

A float.

An unsigned int.

typedef Texture_handler_vtable_impl<true> mi::neuraylib::Texture_handler_deriv_vtable

The texture handler vtable struct with derivatives for the texture coordinates.

typedef Texture_handler_vtable_impl<false> mi::neuraylib::Texture_handler_vtable

The texture handler vtable struct.

Enumeration Type Documentation

The type of events created by BSDF importance sampling.

The type of events created by EDF importance sampling.

MBSDFs can consist of two parts, which can be selected using this enumeration.

Enumerator
MBSDF_DATA_REFLECTION 

the bidirectional reflection distribution function (BRDF)

MBSDF_DATA_TRANSMISSION 

the bidirectional transmission distribution function (BTDF)

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

Enumerator
TEX_WRAP_CLAMP 

tex::wrap_clamp: clamps the lookup coordinate to the range

TEX_WRAP_REPEAT 

tex::wrap_repeat: takes the fractional part of the lookup coordinate effectively repeating the texture along this axis

TEX_WRAP_MIRRORED_REPEAT 

tex::wrap_mirrored_repeat: like wrap_repeat but takes one minus the fractional part every other interval to mirror every second instance of the texture

TEX_WRAP_CLIP 

tex::wrap_clip: makes the texture lookup return zero for texture coordinates outside of the range