7#ifndef MI_NEURAYLIB_TARGET_CODE_TYPES_H
8#define MI_NEURAYLIB_TARGET_CODE_TYPES_H
13#if defined(TARGET_CODE_USE_CUDA_TYPES) && defined(TARGET_CODE_USE_NEURAY_TYPES)
14#error "Only one of TARGET_CODE_USE_CUDA_TYPES and TARGET_CODE_USE_NEURAY_TYPES may be defined."
19#ifndef MDL_DF_SPECTRAL_SAMPLES
20#define MDL_DF_SPECTRAL_SAMPLES 5
23#if !defined(TARGET_CODE_USE_NEURAY_TYPES) && \
24 (defined(TARGET_CODE_USE_CUDA_TYPES) || defined(__CUDA_ARCH__))
26#include <vector_types.h>
29#define MI_NEURAYLIB_DEPRECATED_ENUM_VALUE(X,Y)
52using tct_float4_a16 = float4;
86struct alignas(16) tct_float4_a16
115template<
bool with_derivatives>
124 using tct_derivable_float4 = tct_float4_a16;
125 using tct_coord2_type =
const tct_float[2];
135 using tct_coord2_type =
const tct_derivable_float2 *;
223template<
bool with_derivatives = false>
316template<
bool with_derivatives = false>
368struct Texture_handler_base;
373template<
bool with_derivatives = false>
380 void (*m_tex_lookup_float4_2d)(
384 typename traits::tct_coord2_type coord,
392 void (*m_tex_lookup_float3_2d)(
396 typename traits::tct_coord2_type coord,
404 void (*m_tex_texel_float4_2d)(
413 void (*m_tex_lookup_float4_3d)(
427 void (*m_tex_lookup_float3_3d)(
441 void (*m_tex_texel_float4_3d)(
449 void (*m_tex_lookup_float4_cube)(
456 void (*m_tex_lookup_float3_cube)(
465 void (*m_tex_resolution_2d)(
475 void (*m_tex_resolution_3d)(
515 void (*m_df_light_profile_sample)(
537 void (*m_df_bsdf_measurement_resolution)(
544 void (*m_df_bsdf_measurement_evaluate)(
553 void (*m_df_bsdf_measurement_sample)(
572 void (*m_df_bsdf_measurement_albedos)(
584 void (*m_adapt_normal)(
591 void (*m_rgb_to_spectral_ior)(
598 void (*m_rgb_to_spectral_reflectance)(
605 void (*m_rgb_to_spectral_luminance)(
612 void (*m_rgb_to_spectral_volume_coefficient)(
619 void (*m_get_wavelengths)(
639 void (*m_scene_data_lookup_float2)(
648 void (*m_scene_data_lookup_float3)(
657 void (*m_scene_data_lookup_float4)(
674 void (*m_scene_data_lookup_int2)(
679 tct_int const default_value[2],
683 void (*m_scene_data_lookup_int3)(
688 tct_int const default_value[3],
692 void (*m_scene_data_lookup_int4)(
697 tct_int const default_value[4],
701 void (*m_scene_data_lookup_color)(
711 void (*m_scene_data_lookup_float4x4)(
725 void (*m_scene_data_lookup_deriv_float)(
734 void (*m_scene_data_lookup_deriv_float2)(
743 void (*m_scene_data_lookup_deriv_float3)(
752 void (*m_scene_data_lookup_deriv_float4)(
761 void (*m_scene_data_lookup_deriv_color)(
808 BSDF_EVENT_ABSORB = 0,
810 BSDF_EVENT_DIFFUSE = 1,
811 BSDF_EVENT_GLOSSY = 1 << 1,
812 BSDF_EVENT_SPECULAR = 1 << 2,
813 BSDF_EVENT_REFLECTION = 1 << 3,
814 BSDF_EVENT_TRANSMISSION = 1 << 4,
816 BSDF_EVENT_DIFFUSE_REFLECTION =
BSDF_EVENT_DIFFUSE |
BSDF_EVENT_REFLECTION,
817 BSDF_EVENT_DIFFUSE_TRANSMISSION =
BSDF_EVENT_DIFFUSE |
BSDF_EVENT_TRANSMISSION,
818 BSDF_EVENT_GLOSSY_REFLECTION =
BSDF_EVENT_GLOSSY |
BSDF_EVENT_REFLECTION,
819 BSDF_EVENT_GLOSSY_TRANSMISSION =
BSDF_EVENT_GLOSSY |
BSDF_EVENT_TRANSMISSION,
820 BSDF_EVENT_SPECULAR_REFLECTION =
BSDF_EVENT_SPECULAR |
BSDF_EVENT_REFLECTION,
821 BSDF_EVENT_SPECULAR_TRANSMISSION =
BSDF_EVENT_SPECULAR |
BSDF_EVENT_TRANSMISSION
822 MI_NEURAYLIB_DEPRECATED_ENUM_VALUE(BSDF_EVENT_FORCE_32_BIT, 0xffffffffU)
828#define MI_NEURAYLIB_BSDF_USE_MATERIAL_IOR (-1.0f)
835 DF_FLAGS_ALLOW_REFLECT = 1,
836 DF_FLAGS_ALLOW_TRANSMIT = 2,
837 DF_FLAGS_ALLOW_REFLECT_AND_TRANSMIT =
DF_FLAGS_ALLOW_REFLECT |
DF_FLAGS_ALLOW_TRANSMIT,
838 DF_FLAGS_ALLOWED_SCATTER_MODE_MASK =
DF_FLAGS_ALLOW_REFLECT_AND_TRANSMIT
839 MI_NEURAYLIB_DEPRECATED_ENUM_VALUE(DF_FLAGS_FORCE_32_BIT, 0xffffffffU)
852template <Target_code_color_mode C =
TCCM_RGB>
857struct Bsdf_sample_data<
TCCM_RGB> :
public Bsdf_sample_data_base
880 tct_spectral_sample ior1;
881 tct_spectral_sample ior2;
888 tct_spectral_sample pdf;
889 tct_spectral_sample bsdf_over_pdf;
911template<Df_handle_slot_mode N, Target_code_color_mode C =
TCCM_RGB>
914template<Df_handle_slot_mode N>
915struct Bsdf_evaluate_data<N,
TCCM_RGB> :
public Bsdf_evaluate_data_base
925 tct_float3 bsdf_diffuse[
static_cast<size_t>(N)];
927 tct_float3 bsdf_glossy[
static_cast<size_t>(N)];
935template<Df_handle_slot_mode N>
938 tct_spectral_sample ior1;
939 tct_spectral_sample ior2;
946 tct_spectral_sample bsdf_diffuse[
static_cast<size_t>(N)];
948 tct_spectral_sample bsdf_glossy[
static_cast<size_t>(N)];
950 tct_spectral_sample pdf;
978 tct_spectral_sample ior1;
979 tct_spectral_sample ior2;
987 tct_spectral_sample* bsdf_diffuse;
988 tct_spectral_sample* bsdf_glossy;
989 tct_spectral_sample pdf;
1014 tct_spectral_sample ior1;
1015 tct_spectral_sample ior2;
1019 tct_spectral_sample bsdf_diffuse;
1020 tct_spectral_sample bsdf_glossy;
1021 tct_spectral_sample pdf;
1030template <Target_code_color_mode C =
TCCM_RGB>
1035struct Bsdf_pdf_data<
TCCM_RGB> :
public Bsdf_pdf_data_base
1052 tct_spectral_sample ior1;
1053 tct_spectral_sample ior2;
1057 tct_spectral_sample pdf;
1066template<Df_handle_slot_mode N, Target_code_color_mode C =
TCCM_RGB>
1069template<Df_handle_slot_mode N>
1070struct Bsdf_auxiliary_data<N,
TCCM_RGB> :
public Bsdf_auxiliary_data_base
1079 tct_float3 albedo_diffuse[
static_cast<size_t>(N)];
1081 tct_float3 albedo_glossy[
static_cast<size_t>(N)];
1084 tct_float3 roughness[
static_cast<size_t>(N)];
1091template<Df_handle_slot_mode N>
1094 tct_spectral_sample ior1;
1095 tct_spectral_sample ior2;
1101 tct_spectral_sample albedo_diffuse[
static_cast<size_t>(N)];
1103 tct_spectral_sample albedo_glossy[
static_cast<size_t>(N)];
1106 tct_float3 roughness[
static_cast<size_t>(N)];
1138 tct_spectral_sample ior1;
1139 tct_spectral_sample ior2;
1146 tct_spectral_sample* albedo_diffuse;
1147 tct_spectral_sample* albedo_glossy;
1176 tct_spectral_sample ior1;
1177 tct_spectral_sample ior2;
1180 tct_spectral_sample albedo_diffuse;
1181 tct_spectral_sample albedo_glossy;
1204 char const *arg_block_data);
1219 char const *arg_block_data);
1234 char const *arg_block_data);
1240struct Material_function
1254 char const *arg_block_data);
1265 using Type_with_derivs = T(
1268 char const *arg_block_data);
1287 char const *arg_block_data);
1304 char const *arg_block_data);
1319 char const *arg_block_data);
1334 char const *arg_block_data);
1349 char const *arg_block_data);
1364 char const *arg_block_data);
1379 char const *arg_block_data);
1394 char const *arg_block_data);
1408 char const *arg_block_data);
1423 char const *arg_block_data);
1429 EDF_EVENT_EMISSION = 1
1430 MI_NEURAYLIB_DEPRECATED_ENUM_VALUE(EDF_EVENT_FORCE_32_BIT, 0xffffffffU)
1437template <Target_code_color_mode C =
TCCM_RGB>
1442struct Edf_sample_data<
TCCM_RGB> :
public Edf_sample_data_base
1458 tct_spectral_sample pdf;
1459 tct_spectral_sample edf_over_pdf;
1467template<Df_handle_slot_mode N, Target_code_color_mode C =
TCCM_RGB>
1470template<Df_handle_slot_mode N>
1471struct Edf_evaluate_data<N,
TCCM_RGB> :
public Edf_evaluate_data_base
1482template<Df_handle_slot_mode N>
1490 tct_spectral_sample edf[
static_cast<size_t>(N)];
1491 tct_spectral_sample pdf;
1516 tct_spectral_sample* edf;
1517 tct_spectral_sample pdf;
1534 tct_spectral_sample edf;
1535 tct_spectral_sample pdf;
1548template<Df_handle_slot_mode N>
1560struct Edf_auxiliary_data<
DF_HSM_POINTER> :
public Edf_auxiliary_data_base
1572struct Edf_auxiliary_data<
DF_HSM_NONE> :
public Edf_auxiliary_data_base
1593 char const *arg_block_data);
1610 char const *arg_block_data);
1625 char const *arg_block_data);
1640 char const *arg_block_data);
1655 char const *arg_block_data);
1670 char const *arg_block_data);
1685 char const *arg_block_data);
1700 char const *arg_block_data);
1715 char const *arg_block_data);
1730 char const *arg_block_data);
int Sint32
32-bit signed integer.
Definition: types.h:46
unsigned int Uint32
32-bit unsigned integer.
Definition: types.h:49
Color cos(const Color &c)
Returns a color with the elementwise cosine of the color c.
Definition: color.h:546
math::Vector_struct<Float32, 2> Float32_2_struct
Vector of two Float32 (underlying POD type).
Definition: vector_typedefs.h:187
math::Vector_struct<Float32, 4> Float32_4_struct
Vector of four Float32 (underlying POD type).
Definition: vector_typedefs.h:201
math::Vector_struct<Float32, 3> Float32_3_struct
Vector of three Float32 (underlying POD type).
Definition: vector_typedefs.h:194
bool tct_bool
A bool.
Definition: target_code_types.h:100
float tct_float
A float.
Definition: target_code_types.h:74
void(Bsdf_sample_data_base *data, Shading_state_material_with_derivs const *state, Resource_data const *res_data, char const *arg_block_data) Bsdf_sample_function_with_derivs
Signature of the importance sampling function for material distribution functions created via mi::neu...
Definition: target_code_types.h:1334
void(void *result, Shading_state_environment const *state, Resource_data const *res_data, char const *arg_block_data) Environment_function
Signature of environment functions created via mi::neuraylib::IMdl_backend::translate_environment() a...
Definition: target_code_types.h:1204
Df_handle_slot_mode
Type of Bsdf_evaluate_data variants, depending on the backend and its configuration.
Definition: target_code_types.h:899
mi::Float32_4_struct tct_float4
A float4.
Definition: target_code_types.h:83
mi::Float32_2_struct tct_float2
A float2.
Definition: target_code_types.h:77
Bsdf_event_type
The type of events created by BSDF importance sampling.
Definition: target_code_types.h:807
void(Edf_sample_data_base *data, Shading_state_material const *state, Resource_data const *res_data, char const *arg_block_data) Edf_sample_function
Signature of the importance sampling function for material distribution functions created via mi::neu...
Definition: target_code_types.h:1625
void(Edf_auxiliary_data_base *data, Shading_state_material_with_derivs const *state, Resource_data const *res_data, char const *arg_block_data) Edf_auxiliary_function_with_derivs
Signature of the auxiliary function for material distribution functions created via mi::neuraylib::IM...
Definition: target_code_types.h:1730
void(Bsdf_auxiliary_data_base *data, Shading_state_material const *state, Resource_data const *res_data, char const *arg_block_data) Bsdf_auxiliary_function
Signature of the auxiliary function for material distribution functions created via mi::neuraylib::IM...
Definition: target_code_types.h:1408
tct_traits<true>::tct_derivable_float tct_deriv_float
A float with derivatives.
Definition: target_code_types.h:139
void(void *result, Shading_state_material const *state, Resource_data const *res_data, char const *arg_block_data) Material_expr_function
Signature of material expression functions created via mi::neuraylib::IMdl_backend::translate_materia...
Definition: target_code_types.h:1219
void(Bsdf_pdf_data_base *data, Shading_state_material const *state, Resource_data const *res_data, char const *arg_block_data) Bsdf_pdf_function
Signature of the probability density function for material distribution functions created via mi::neu...
Definition: target_code_types.h:1379
void(Bsdf_evaluate_data_base *data, Shading_state_material_with_derivs const *state, Resource_data const *res_data, char const *arg_block_data) Bsdf_evaluate_function_with_derivs
Signature of the evaluation function for material distribution functions created via mi::neuraylib::I...
Definition: target_code_types.h:1364
void(Edf_evaluate_data_base *data, Shading_state_material const *state, Resource_data const *res_data, char const *arg_block_data) Edf_evaluate_function
Signature of the evaluation function for material distribution functions created via mi::neuraylib::I...
Definition: target_code_types.h:1655
void(Edf_sample_data_base *data, Shading_state_material_with_derivs const *state, Resource_data const *res_data, char const *arg_block_data) Edf_sample_function_with_derivs
Signature of the importance sampling function for material distribution functions created via mi::neu...
Definition: target_code_types.h:1640
void(Edf_auxiliary_data_base *data, Shading_state_material const *state, Resource_data const *res_data, char const *arg_block_data) Edf_auxiliary_function
Signature of the auxiliary function for material distribution functions created via mi::neuraylib::IM...
Definition: target_code_types.h:1715
Mbsdf_part
MBSDFs can consist of two parts, which can be selected using this enumeration.
Definition: target_code_types.h:358
void(Shading_state_material *state, Resource_data const *res_data, char const *arg_block_data) Bsdf_init_function
Signature of the initialization function for material distribution functions created via mi::neurayli...
Definition: target_code_types.h:1287
Tex_wrap_mode
The texture wrap modes as defined by tex::wrap_mode in the MDL specification.
Definition: target_code_types.h:339
void(Shading_state_material_with_derivs *state, Resource_data const *res_data, char const *arg_block_data) Bsdf_init_function_with_derivs
Signature of the initialization function for material distribution functions created via mi::neurayli...
Definition: target_code_types.h:1304
mi::Float32_3_struct tct_float3
A float3.
Definition: target_code_types.h:80
void(Edf_evaluate_data_base *data, Shading_state_material_with_derivs const *state, Resource_data const *res_data, char const *arg_block_data) Edf_evaluate_function_with_derivs
Signature of the evaluation function for material distribution functions created via mi::neuraylib::I...
Definition: target_code_types.h:1670
void(void *result, Shading_state_material_with_derivs const *state, Resource_data const *res_data, char const *arg_block_data) Material_expr_function_with_derivs
Signature of material expression functions created via mi::neuraylib::IMdl_backend::translate_materia...
Definition: target_code_types.h:1234
void(Bsdf_auxiliary_data_base *data, Shading_state_material_with_derivs const *state, Resource_data const *res_data, char const *arg_block_data) Bsdf_auxiliary_function_with_derivs
Signature of the auxiliary function for material distribution functions created via mi::neuraylib::IM...
Definition: target_code_types.h:1423
Edf_event_type
The type of events created by EDF importance sampling.
Definition: target_code_types.h:1427
mi::Sint32 tct_int
An int.
Definition: target_code_types.h:92
void(Edf_pdf_data *data, Shading_state_material const *state, Resource_data const *res_data, char const *arg_block_data) Edf_pdf_function
Signature of the probability density function for material distribution functions created via mi::neu...
Definition: target_code_types.h:1685
mi::Uint32 tct_uint
An unsigned int.
Definition: target_code_types.h:95
void(Shading_state_material_with_derivs *state, Resource_data const *res_data, char const *arg_block_data) Edf_init_function_with_derivs
Signature of the initialization function for material distribution functions created via mi::neurayli...
Definition: target_code_types.h:1610
Df_flags
Flags controlling the calculation of DF results.
Definition: target_code_types.h:832
tct_traits<true>::tct_derivable_float2 tct_deriv_float2
A float2 with derivatives.
Definition: target_code_types.h:142
void(Bsdf_evaluate_data_base *data, Shading_state_material const *state, Resource_data const *res_data, char const *arg_block_data) Bsdf_evaluate_function
Signature of the evaluation function for material distribution functions created via mi::neuraylib::I...
Definition: target_code_types.h:1349
void(Edf_pdf_data *data, Shading_state_material_with_derivs const *state, Resource_data const *res_data, char const *arg_block_data) Edf_pdf_function_with_derivs
Signature of the probability density function for material distribution functions created via mi::neu...
Definition: target_code_types.h:1700
void(Bsdf_pdf_data_base *data, Shading_state_material_with_derivs const *state, Resource_data const *res_data, char const *arg_block_data) Bsdf_pdf_function_with_derivs
Signature of the probability density function for material distribution functions created via mi::neu...
Definition: target_code_types.h:1394
tct_traits<true>::tct_derivable_float4 tct_deriv_float4
A float4 with derivatives.
Definition: target_code_types.h:148
void(Shading_state_material *state, Resource_data const *res_data, char const *arg_block_data) Edf_init_function
Signature of the initialization function for material distribution functions created via mi::neurayli...
Definition: target_code_types.h:1593
void(Bsdf_sample_data_base *data, Shading_state_material const *state, Resource_data const *res_data, char const *arg_block_data) Bsdf_sample_function
Signature of the importance sampling function for material distribution functions created via mi::neu...
Definition: target_code_types.h:1319
tct_traits<true>::tct_derivable_float3 tct_deriv_float3
A float3 with derivatives.
Definition: target_code_types.h:145
Target_code_color_mode
Spectral rendering enabled or disabled depending on the backend and its configuration.
Definition: target_code_types.h:844
@ DF_HSM_POINTER
Uses renderer defined buffers; not supported by all backends.
Definition: target_code_types.h:900
@ DF_HSM_FIXED_2
fixed size array for processing 2 handle at a time
Definition: target_code_types.h:903
@ DF_HSM_NONE
No slots, handles are ignored completely.
Definition: target_code_types.h:901
@ DF_HSM_FIXED_8
fixed size array for processing 8 handle at a time
Definition: target_code_types.h:905
@ DF_HSM_FIXED_1
fixed size array for processing 1 handle at a time
Definition: target_code_types.h:902
@ DF_HSM_FIXED_4
fixed size array for processing 4 handle at a time
Definition: target_code_types.h:904
@ MBSDF_DATA_TRANSMISSION
the bidirectional transmission distribution function (BTDF)
Definition: target_code_types.h:363
@ MBSDF_DATA_REFLECTION
the bidirectional reflection distribution function (BRDF)
Definition: target_code_types.h:360
@ TEX_WRAP_CLIP
tex::wrap_clip: makes the texture lookup return zero for texture coordinates outside of the range
Definition: target_code_types.h:353
@ TEX_WRAP_MIRRORED_REPEAT
tex::wrap_mirrored_repeat: like wrap_repeat but takes one minus the fractional part every other inter...
Definition: target_code_types.h:349
@ TEX_WRAP_REPEAT
tex::wrap_repeat: takes the fractional part of the lookup coordinate effectively repeating the textur...
Definition: target_code_types.h:345
@ TEX_WRAP_CLAMP
tex::wrap_clamp: clamps the lookup coordinate to the range
Definition: target_code_types.h:341
@ DF_FLAGS_NONE
allows nothing -> black
Definition: target_code_types.h:833
@ TCCM_RGB
no spectral sampling, use RGB
Definition: target_code_types.h:845
@ TCCM_SPECTRAL_SAMPLING
spectral sampling, use spectral samples
Definition: target_code_types.h:846
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
Definition: example_derivatives.dox:5
Major and minor version number and an optional qualifier.
Generic storage class template for math vector representations storing DIM elements of type T.
Definition: vector.h:135
Input and output structure for BSDF auxiliary calculation data.
Definition: target_code_types.h:1064
Input and output structure for BSDF evaluation data.
Definition: target_code_types.h:909
Input and output structure for BSDF PDF calculation data.
Definition: target_code_types.h:1028
Input and output structure for BSDF sampling data.
Definition: target_code_types.h:850
Input and output structure for EDF auxiliary calculation data.
Definition: target_code_types.h:1546
Input and output structure for EDF evaluation data.
Definition: target_code_types.h:1465
Input and output structure for EDF PDF calculation data.
Definition: target_code_types.h:1540
tct_float pdf
output: pdf (non-projected hemisphere)
Definition: target_code_types.h:1542
tct_float3 k1
input: outgoing direction
Definition: target_code_types.h:1541
Input and output structure for EDF sampling data.
Definition: target_code_types.h:1435
The data structure providing access to resources for generated code.
Definition: target_code_types.h:799
void const * shared_data
currently unused, should be nullptr
Definition: target_code_types.h:800
Texture_handler_base const * texture_handler
will be provided as "self" parameter to texture functions
Definition: target_code_types.h:801
The MDL environment state structure inside the MDL SDK is a representation of the renderer state in t...
Definition: target_code_types.h:174
tct_float3 direction
The result of state::direction().
Definition: target_code_types.h:177
char const * ro_data_segment
A pointer to a read-only data segment.
Definition: target_code_types.h:192
The MDL material state structure inside the MDL SDK is a representation of the renderer state as defi...
Definition: target_code_types.h:225
tct_float3 normal
The result of state::normal().
Definition: target_code_types.h:232
char const * ro_data_segment
A pointer to a read-only data segment.
Definition: target_code_types.h:286
tct_int object_id
The result of state::object_id().
Definition: target_code_types.h:306
traits::tct_derivable_float3 position
The result of state::position().
Definition: target_code_types.h:240
tct_float3 const * tangent_v
An array containing the results of state::texture_tangent_v(i).
Definition: target_code_types.h:263
tct_float4_a16 const * object_to_world
A 4x4 transformation matrix in row-major order transforming from object to world coordinates.
Definition: target_code_types.h:300
traits::tct_derivable_float3 const * text_coords
An array containing the results of state::texture_coordinate(i).
Definition: target_code_types.h:249
tct_float4_a16 const * world_to_object
A 4x4 transformation matrix in row-major order transforming from world to object coordinates.
Definition: target_code_types.h:293
tct_float animation_time
The result of state::animation_time().
Definition: target_code_types.h:244
tct_float3 geom_normal
The result of state::geometry_normal().
Definition: target_code_types.h:236
tct_float3 const * tangent_u
An array containing the results of state::texture_tangent_u(i).
Definition: target_code_types.h:256
tct_float4_a16 * text_results
The texture results lookup table.
Definition: target_code_types.h:271
tct_float meters_per_scene_unit
The result of state::meters_per_scene_unit().
Definition: target_code_types.h:311
The MDL material state structure for spectral rendering.
Definition: target_code_types.h:317
tct_spectral_sample spectral_wavelengths
currently active wavelengths in nm
Definition: target_code_types.h:319
The texture handler structure that is passed to the texturing functions.
Definition: target_code_types.h:780
Texture_handler_vtable const * vtable
In vtable-mode, the vtable field is used to call the texturing functions.
Definition: target_code_types.h:783
The texture handler structure that is passed to the texturing functions with derivative support.
Definition: target_code_types.h:790
Texture_handler_deriv_vtable const * vtable
In vtable-mode, the vtable field is used to call the texturing functions.
Definition: target_code_types.h:793
The runtime for bitmap texture access for the generated target code can optionally be implemented in ...
Definition: target_code_types.h:375
A template struct with derivatives.
Definition: target_code_types.h:110
A floatN type for spectral sampling.
Definition: target_code_types.h:103
Helper traits struct to switch between derivative and non-derivative types.
Definition: target_code_types.h:116
#define MDL_DF_SPECTRAL_SAMPLES
The default number of elements in a spectral sample.
Definition: target_code_types.h:20
Typedefs for types from the math API.