Material Definition Language API nvidia_logo_transpbg.gif Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
mi::neuraylib::Texture_handler_vtable_impl< with_derivatives > Struct Template Reference

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

Public Attributes

void(* m_tex_lookup_float4_2d )(tct_float result[4], Texture_handler_base const *self, tct_uint texture_idx, typename traits::tct_coord2_type coord, Tex_wrap_mode wrap_u, Tex_wrap_mode wrap_v, tct_float const crop_u[2], tct_float const crop_v[2])
 Implementation of tex::lookup_float4() for a texture_2d texture. More...
 
void(* m_tex_lookup_float3_2d )(tct_float result[3], Texture_handler_base const *self, tct_uint texture_idx, typename traits::tct_coord2_type coord, Tex_wrap_mode wrap_u, Tex_wrap_mode wrap_v, tct_float const crop_u[2], tct_float const crop_v[2])
 Implementation of tex::lookup_float3() for a texture_2d texture. More...
 
void(* m_tex_texel_float4_2d )(tct_float result[4], Texture_handler_base const *self, tct_uint texture_idx, tct_int const coord[2], tct_int const uv_tile[2])
 Implementation of tex::texel_float4() for a texture_2d texture. More...
 
void(* m_tex_lookup_float4_3d )(tct_float result[4], Texture_handler_base const *self, tct_uint texture_idx, tct_float const coord[3], Tex_wrap_mode wrap_u, Tex_wrap_mode wrap_v, Tex_wrap_mode wrap_w, tct_float const crop_u[2], tct_float const crop_v[2], tct_float const crop_w[2])
 Implementation of tex::lookup_float4() for a texture_3d texture. More...
 
void(* m_tex_lookup_float3_3d )(tct_float result[3], Texture_handler_base const *self, tct_uint texture_idx, tct_float const coord[3], Tex_wrap_mode wrap_u, Tex_wrap_mode wrap_v, Tex_wrap_mode wrap_w, tct_float const crop_u[2], tct_float const crop_v[2], tct_float const crop_w[2])
 Implementation of tex::lookup_float3() for a texture_3d texture. More...
 
void(* m_tex_texel_float4_3d )(tct_float result[4], Texture_handler_base const *self, tct_uint texture_idx, tct_int const coord[3])
 Implementation of tex::texel_float4() for a texture_3d texture. More...
 
void(* m_tex_lookup_float4_cube )(tct_float result[4], Texture_handler_base const *self, tct_uint texture_idx, tct_float const coord[3])
 Implementation of tex::lookup_float4() for a texture_cube texture. More...
 
void(* m_tex_lookup_float3_cube )(tct_float result[3], Texture_handler_base const *self, tct_uint texture_idx, tct_float const coord[3])
 Implementation of tex::lookup_float3() for a texture_cube texture. More...
 
void(* m_tex_resolution_2d )(tct_int result[2], Texture_handler_base const *self, tct_uint texture_idx, tct_int const uv_tile[2])
 Implementation of resolution_2d() function needed by generated code, which retrieves the width and height of the given texture. More...
 
void(* m_tex_resolution_3d )(tct_int result[3], Texture_handler_base const *self, tct_uint texture_idx)
 Implementation of resolution_3d() function needed by generated code, which retrieves the width, height and depth of the given texture. More...
 
tct_bool(* m_tex_texture_isvalid )(Texture_handler_base const *self, tct_uint texture_idx)
 Implementation of texture_isvalid() for any texture type. More...
 
tct_float(* m_df_light_profile_power )(Texture_handler_base const *self, tct_uint light_profile_index)
 Implementation of light_profile_power() for a light profile. More...
 
tct_float(* m_df_light_profile_maximum )(Texture_handler_base const *self, tct_uint light_profile_index)
 Implementation of light_profile_maximum() for a light profile. More...
 
tct_bool(* m_df_light_profile_isvalid )(Texture_handler_base const *self, tct_uint light_profile_index)
 Implementation of light_profile_isvalid() for a light profile. More...
 
tct_float(* m_df_light_profile_evaluate )(Texture_handler_base const *self, tct_uint light_profile_index, tct_float const theta_phi[2])
 Implementation of light_profile_evaluate() for a light profile. More...
 
void(* m_df_light_profile_sample )(tct_float result[3], Texture_handler_base const *self, tct_uint light_profile_index, tct_float const xi[3])
 Implementation of light_profile_sample() for a light profile. More...
 
tct_float(* m_df_light_profile_pdf )(Texture_handler_base const *self, tct_uint light_profile_index, tct_float const theta_phi[2])
 Implementation of light_profile_pdf() for a light profile. More...
 
tct_bool(* m_df_bsdf_measurement_isvalid )(Texture_handler_base const *self, tct_uint bsdf_measurement_index)
 Implementation of bsdf_measurement_isvalid() for an MBSDF. More...
 
void(* m_df_bsdf_measurement_resolution )(tct_uint result[3], Texture_handler_base const *self, tct_uint bsdf_measurement_index, Mbsdf_part part)
 Implementation of bsdf_measurement_resolution() function needed by generated code, which retrieves the angular and chromatic resolution of the given MBSDF. More...
 
void(* m_df_bsdf_measurement_evaluate )(tct_float result[3], Texture_handler_base const *self, tct_uint bsdf_measurement_index, tct_float const theta_phi_in[2], tct_float const theta_phi_out[2], Mbsdf_part part)
 Implementation of bsdf_measurement_evaluate() for an MBSDF. More...
 
void(* m_df_bsdf_measurement_sample )(tct_float result[3], Texture_handler_base const *self, tct_uint bsdf_measurement_index, tct_float const theta_phi_out[2], tct_float const xi[3], Mbsdf_part part)
 Implementation of bsdf_measurement_sample() for an MBSDF. More...
 
tct_float(* m_df_bsdf_measurement_pdf )(Texture_handler_base const *self, tct_uint bsdf_measurement_index, tct_float const theta_phi_in[2], tct_float const theta_phi_out[2], Mbsdf_part part)
 Implementation of bsdf_measurement_pdf() for an MBSDF. More...
 
void(* m_df_bsdf_measurement_albedos )(tct_float result[4], Texture_handler_base const *self, tct_uint bsdf_measurement_index, tct_float const theta_phi[2])
 Implementation of bsdf_measurement_albedos() for an MBSDF. More...
 

Detailed Description

template<bool with_derivatives = false>
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.

Member Data Documentation

template<bool with_derivatives = false>
void(* mi::neuraylib::Texture_handler_vtable_impl< with_derivatives >::m_df_bsdf_measurement_albedos)(tct_float result[4],Texture_handler_base const *self, tct_uint bsdf_measurement_index, tct_float const theta_phi[2])

Implementation of bsdf_measurement_albedos() for an MBSDF.

theta in [0, pi/2] and phi in [-pi, pi]

template<bool with_derivatives = false>
void(* mi::neuraylib::Texture_handler_vtable_impl< with_derivatives >::m_df_bsdf_measurement_evaluate)(tct_float result[3], Texture_handler_base const *self, tct_uint bsdf_measurement_index, tct_float const theta_phi_in[2],tct_float const theta_phi_out[2],Mbsdf_part part)

Implementation of bsdf_measurement_evaluate() for an MBSDF.

reflection or transmission

template<bool with_derivatives = false>
tct_bool(* mi::neuraylib::Texture_handler_vtable_impl< with_derivatives >::m_df_bsdf_measurement_isvalid)(Texture_handler_base const *self, tct_uint bsdf_measurement_index)

Implementation of bsdf_measurement_isvalid() for an MBSDF.

template<bool with_derivatives = false>
tct_float(* mi::neuraylib::Texture_handler_vtable_impl< with_derivatives >::m_df_bsdf_measurement_pdf)(Texture_handler_base const *self, tct_uint bsdf_measurement_index, tct_float const theta_phi_in[2],tct_float const theta_phi_out[2],Mbsdf_part part)

Implementation of bsdf_measurement_pdf() for an MBSDF.

reflection or transmission

template<bool with_derivatives = false>
void(* mi::neuraylib::Texture_handler_vtable_impl< with_derivatives >::m_df_bsdf_measurement_resolution)(tct_uint result[3], Texture_handler_base const *self, tct_uint bsdf_measurement_index, Mbsdf_part part)

Implementation of bsdf_measurement_resolution() function needed by generated code, which retrieves the angular and chromatic resolution of the given MBSDF.

The returned triple consists of: number of equi-spaced steps of theta_i and theta_o, number of equi-spaced steps of phi, and number of color channels (1 or 3). reflection or transmission

template<bool with_derivatives = false>
void(* mi::neuraylib::Texture_handler_vtable_impl< with_derivatives >::m_df_bsdf_measurement_sample)(tct_float result[3],Texture_handler_base const *self, tct_uint bsdf_measurement_index, tct_float const theta_phi_out[2],tct_float const xi[3],Mbsdf_part part)

Implementation of bsdf_measurement_sample() for an MBSDF.

reflection or transmission

template<bool with_derivatives = false>
tct_float(* mi::neuraylib::Texture_handler_vtable_impl< with_derivatives >::m_df_light_profile_evaluate)(Texture_handler_base const *self, tct_uint light_profile_index, tct_float const theta_phi[2])

Implementation of light_profile_evaluate() for a light profile.

theta in [0, pi/2] and phi in [-pi, pi]

template<bool with_derivatives = false>
tct_bool(* mi::neuraylib::Texture_handler_vtable_impl< with_derivatives >::m_df_light_profile_isvalid)(Texture_handler_base const *self, tct_uint light_profile_index)

Implementation of light_profile_isvalid() for a light profile.

template<bool with_derivatives = false>
tct_float(* mi::neuraylib::Texture_handler_vtable_impl< with_derivatives >::m_df_light_profile_maximum)(Texture_handler_base const *self, tct_uint light_profile_index)

Implementation of light_profile_maximum() for a light profile.

template<bool with_derivatives = false>
tct_float(* mi::neuraylib::Texture_handler_vtable_impl< with_derivatives >::m_df_light_profile_pdf)(Texture_handler_base const *self, tct_uint light_profile_index, tct_float const theta_phi[2])

Implementation of light_profile_pdf() for a light profile.

theta in [0, pi/2] and phi in [-pi, pi]

template<bool with_derivatives = false>
tct_float(* mi::neuraylib::Texture_handler_vtable_impl< with_derivatives >::m_df_light_profile_power)(Texture_handler_base const *self, tct_uint light_profile_index)

Implementation of light_profile_power() for a light profile.

template<bool with_derivatives = false>
void(* mi::neuraylib::Texture_handler_vtable_impl< with_derivatives >::m_df_light_profile_sample)(tct_float result[3],Texture_handler_base const *self, tct_uint light_profile_index, tct_float const xi[3])

Implementation of light_profile_sample() for a light profile.

template<bool with_derivatives = false>
void(* mi::neuraylib::Texture_handler_vtable_impl< with_derivatives >::m_tex_lookup_float3_2d)(tct_float result[3], Texture_handler_base const *self, tct_uint texture_idx, typename traits::tct_coord2_type coord, Tex_wrap_mode wrap_u, Tex_wrap_mode wrap_v, tct_float const crop_u[2], tct_float const crop_v[2])

Implementation of tex::lookup_float3() for a texture_2d texture.

template<bool with_derivatives = false>
void(* mi::neuraylib::Texture_handler_vtable_impl< with_derivatives >::m_tex_lookup_float3_3d)(tct_float result[3], Texture_handler_base const *self, tct_uint texture_idx, tct_float const coord[3], Tex_wrap_mode wrap_u, Tex_wrap_mode wrap_v, Tex_wrap_mode wrap_w, tct_float const crop_u[2], tct_float const crop_v[2], tct_float const crop_w[2])

Implementation of tex::lookup_float3() for a texture_3d texture.

template<bool with_derivatives = false>
void(* mi::neuraylib::Texture_handler_vtable_impl< with_derivatives >::m_tex_lookup_float3_cube)(tct_float result[3], Texture_handler_base const *self, tct_uint texture_idx, tct_float const coord[3])

Implementation of tex::lookup_float3() for a texture_cube texture.

template<bool with_derivatives = false>
void(* mi::neuraylib::Texture_handler_vtable_impl< with_derivatives >::m_tex_lookup_float4_2d)(tct_float result[4], Texture_handler_base const *self, tct_uint texture_idx, typename traits::tct_coord2_type coord, Tex_wrap_mode wrap_u, Tex_wrap_mode wrap_v, tct_float const crop_u[2], tct_float const crop_v[2])

Implementation of tex::lookup_float4() for a texture_2d texture.

template<bool with_derivatives = false>
void(* mi::neuraylib::Texture_handler_vtable_impl< with_derivatives >::m_tex_lookup_float4_3d)(tct_float result[4], Texture_handler_base const *self, tct_uint texture_idx, tct_float const coord[3], Tex_wrap_mode wrap_u, Tex_wrap_mode wrap_v, Tex_wrap_mode wrap_w, tct_float const crop_u[2], tct_float const crop_v[2], tct_float const crop_w[2])

Implementation of tex::lookup_float4() for a texture_3d texture.

template<bool with_derivatives = false>
void(* mi::neuraylib::Texture_handler_vtable_impl< with_derivatives >::m_tex_lookup_float4_cube)(tct_float result[4], Texture_handler_base const *self, tct_uint texture_idx, tct_float const coord[3])

Implementation of tex::lookup_float4() for a texture_cube texture.

template<bool with_derivatives = false>
void(* mi::neuraylib::Texture_handler_vtable_impl< with_derivatives >::m_tex_resolution_2d)(tct_int result[2], Texture_handler_base const *self, tct_uint texture_idx, tct_int const uv_tile[2])

Implementation of resolution_2d() function needed by generated code, which retrieves the width and height of the given texture.

Will only be called for texture_2d and texture_cube textures.

template<bool with_derivatives = false>
void(* mi::neuraylib::Texture_handler_vtable_impl< with_derivatives >::m_tex_resolution_3d)(tct_int result[3], Texture_handler_base const *self, tct_uint texture_idx)

Implementation of resolution_3d() function needed by generated code, which retrieves the width, height and depth of the given texture.

Will only be called for texture_3d textures.

template<bool with_derivatives = false>
void(* mi::neuraylib::Texture_handler_vtable_impl< with_derivatives >::m_tex_texel_float4_2d)(tct_float result[4], Texture_handler_base const *self, tct_uint texture_idx, tct_int const coord[2], tct_int const uv_tile[2])

Implementation of tex::texel_float4() for a texture_2d texture.

template<bool with_derivatives = false>
void(* mi::neuraylib::Texture_handler_vtable_impl< with_derivatives >::m_tex_texel_float4_3d)(tct_float result[4], Texture_handler_base const *self, tct_uint texture_idx, tct_int const coord[3])

Implementation of tex::texel_float4() for a texture_3d texture.

template<bool with_derivatives = false>
tct_bool(* mi::neuraylib::Texture_handler_vtable_impl< with_derivatives >::m_tex_texture_isvalid)(Texture_handler_base const *self, tct_uint texture_idx)

Implementation of texture_isvalid() for any texture type.