home << prev next >> contents  


Callable Functions by Shader Type

The following table describes which shader interface functions are available in which types of shaders. Shader types are abbreviated:

G geometry shader
D displacement shader
P photon shader and photon volume shader
E photon emitter shader
Le lens shader
M material shader and texture shader
V volume shader
Lg light shader
S shadow shader
Cs contour store shader
C contour contrast shader and contour shader
O output shader and multipass rendering merge function3.1
Lm lightmap shader
Ss state shaderstate shader

The rules for init shaders and exit shaders are the same as for the main shader they apply to. In the table, "Y" means that the function may be used, "N" means that it may not be used, and "*" means that it is available but is not normally useful. The asterisk "*" denotes omission unless an earlier more specific table row overrides it. For example, mi_eval* means all functions beginning with mi_eval, including mi_eval itself, mi_eval_boolean, and so on.

function G D P E Le M V Lg S Cs C O Lm Ss
Shader Calls
mi_call_shader* Y Y Y Y Y Y Y Y Y Y Y Y Y N
mi_call_material N N N N N Y N N N N N N Y N
mi_call_photon_material N N Y N N N N N N N N N Y N
mi_eval* Y Y Y Y N Y Y Y Y Y N N Y Y
mi_flush_cache Y Y Y Y N Y Y Y Y Y N N Y N
DB
mi_db_* Y Y Y Y Y Y Y Y Y Y Y Y Y Y
RC Functions
mi_trace_eye N N N N Y N N N N * * N Y N
mi_trace_reflection N N Y Y Y Y Y Y Y * * N Y N
mi_trace_refraction N N Y Y Y Y Y Y Y * * N Y N
mi_trace_transparent N N Y Y Y Y Y Y Y * * N Y N
mi_trace_environment N N Y Y Y Y Y Y Y * * N Y N
mi_trace_probe N N Y Y Y Y Y Y Y * * N Y N
mi_trace_light N N Y Y Y Y Y N N * * N Y N
mi_sample_light N N Y Y Y Y Y N N * * N Y N
mi_trace_shadow N N N N N N N Y N N N N N N
mi_trace_shadow_seg N N N N N N N N Y N N N N N
mi_inclusive_lightlist N N N N N N N N Y N N N Y N
mi_exclusive_lightlist N N N N N N N N Y N N N Y N
mi_compute_irradiance N N N N Y Y Y Y Y Y N N Y N
mi_compute_irradiance_backside N N N N Y Y Y Y Y Y N N Y N
mi_compute_avg_radiance N N N N Y Y Y Y Y Y N N Y N
mi_compute_volume_irradiance N N N N Y Y Y Y Y Y N N Y N
mi_compute_directional_irradiance N N N N Y Y Y Y Y Y N N Y N
mi_sample N N Y Y Y Y Y Y Y Y Y Y Y N
RC Photon Functions
mi_photon_light N N Y N N N N N N N N N N N
mi_photon_reflection_specular N N Y N N N N N N N N N N N
mi_photon_reflection_glossy N N Y N N N N N N N N N N N
mi_photon_reflection_diffuse N N Y N N N N N N N N N N N
mi_photon_transmission_specular N N Y N N N N N N N N N N N
mi_photon_transmission_glossy N N Y N N N N N N N N N N N
mi_photon_transmission_diffuse N N Y N N N N N N N N N N N
mi_photon_transparent N N Y N N N N N N N N N N N
mi_photon_volume_scattering N N Y N N N N N N N N N N N
mi_store_photon N N Y N N N N N N N N N N N
mi_store_volume_photon N N Y N N N N N N N N N N N
RC Direction Functions
mi_reflection_dir * Y Y Y Y Y Y Y Y Y Y * Y N
mi_reflection_dir_specular * Y Y Y Y Y Y Y Y Y Y * Y N
mi_reflection_dir_glossy * Y Y Y Y Y Y Y Y Y Y * Y N
mi_reflection_dir_glossy_x3.4 * Y Y Y Y Y Y Y Y Y Y * Y N
mi_reflection_dir_anisglossy * Y Y Y Y Y Y Y Y Y Y * Y N
mi_reflection_dir_anisglossy_x3.4 * Y Y Y Y Y Y Y Y Y Y * Y N
mi_reflection_dir_diffuse_x * Y Y Y Y Y Y Y Y Y Y * Y N
mi_reflection_dir_diffuse_x3.4 * Y Y Y Y Y Y Y Y Y Y * Y N
mi_refraction_dir * Y Y Y Y Y Y Y Y Y Y * Y N
mi_transmission_dir_specular * Y Y Y Y Y Y Y Y Y Y * Y N
mi_transmission_dir_glossy * Y Y Y Y Y Y Y Y Y Y * Y N
mi_transmission_dir_glossy_x3.4 * Y Y Y Y Y Y Y Y Y Y * Y N
mi_transmission_dir_anisglossy * Y Y Y Y Y Y Y Y Y Y * Y N
mi_transmission_dir_anisglossy_x3.4 * Y Y Y Y Y Y Y Y Y Y * Y N
mi_transmission_dir_diffuse * Y Y Y Y Y Y Y Y Y Y * Y N
mi_transmission_dir_diffuse_x3.4 * Y Y Y Y Y Y Y Y Y Y * Y N
mi_scattering_dir_diffuse * Y Y Y Y Y Y Y Y Y Y * Y N
mi_scattering_dir_directional * Y Y Y Y Y Y Y Y Y Y * Y N
mi_scattering_pathlength * Y Y Y Y Y Y Y Y Y Y * Y N
IMG Functions
mi_img_put_* Y Y Y Y Y Y Y Y Y Y Y Y Y Y
mi_img_get_* Y Y Y Y Y Y Y Y Y Y Y Y Y Y
mi_img_tonemap N N N N N N N N N N N Y N N
Math Functions
mi_point_to_* N Y Y Y Y Y Y Y Y Y Y N Y Y
mi_point_from_* N Y Y Y Y Y Y Y Y Y Y N Y Y
mi_vector_to_* N Y Y Y Y Y Y Y Y Y Y N Y Y
mi_vector_from_* N Y Y Y Y Y Y Y Y Y Y N Y Y
mi_normal_to_* N Y Y Y Y Y Y Y Y Y Y N Y Y
mi_normal_from_* N Y Y Y Y Y Y Y Y Y Y N Y Y
mi_vector_* Y Y Y Y Y Y Y Y Y Y Y Y Y Y
mi_matrix_* Y Y Y Y Y Y Y Y Y Y Y Y Y Y
mi_point_* Y Y Y Y Y Y Y Y Y Y Y Y Y Y
Noise Functions
mi_par_random N N N N Y Y Y Y Y Y Y N Y Y
mi_*random Y Y Y Y Y Y Y Y Y Y Y Y Y Y
mi_spline Y Y Y Y Y Y Y Y Y Y Y Y Y Y
mi_noise_* Y Y Y Y Y Y Y Y Y Y Y Y Y Y
mi_unoise_* Y Y Y Y Y Y Y Y Y Y Y Y Y Y
Color Profile Functions3.4
mi_colorprofile_* Y Y Y Y Y Y Y Y Y Y Y Y Y Y
Auxiliary Functions
mi_fresnel N Y Y Y Y Y Y Y Y Y Y Y Y N
mi_fresnel_reflection N Y Y Y Y Y Y Y Y Y Y Y Y N
mi_phong_specular N Y Y Y Y Y Y Y Y Y Y Y Y N
mi_fresnel_specular N Y Y Y Y Y Y Y Y Y Y Y Y N
mi_blinn_specular N Y Y Y Y Y Y Y Y Y Y Y Y N
mi_blong_specular N Y Y Y Y Y Y Y Y Y Y Y Y N
mi_cooktorr_specular N Y Y Y Y Y Y Y Y Y Y Y Y N
mi_ward_glossy N Y Y Y Y Y Y Y Y Y Y Y Y N
mi_ward_anisglossy N Y Y Y Y Y Y Y Y Y Y Y Y N
mi_schlick_scatter N Y Y Y Y Y Y Y Y Y Y Y Y N
mi_choose_scatter_type N Y Y Y Y Y Y Y Y Y Y Y Y N
mi_choose_simple_scatter_type N Y Y Y Y Y Y Y Y Y Y Y Y N
mi_choose_lobe N Y Y Y Y Y Y Y Y Y Y Y Y N
mi_luminance Y Y Y Y Y Y Y Y Y Y Y Y Y N
mi_lookup_*_texture Y Y Y Y Y Y Y Y Y Y Y Y Y Y
mi_texture_filter_project N Y Y Y Y Y Y Y Y Y Y Y Y Y
mi_texture_filter_transform N Y Y Y Y Y Y Y Y Y Y Y Y Y
mi_tri_vectors N N Y Y N Y Y Y Y Y Y N Y N
mi_query Y Y Y Y Y Y Y Y Y Y Y Y Y Y
mi_shaderstate_enumerate N N N N Y Y Y Y Y N N N Y Y
mi_shaderstate_set N N N N Y Y Y Y Y N N N Y Y
mi_shaderstate_get N N N N Y Y Y Y Y N N N Y Y
mi_fb_put N N N N Y Y Y Y Y Y Y N N Y
mi_fb_get N N N N Y Y Y Y Y Y Y N N Y
mi_output_image_open3.4 N N N N N N N N N N N Y N N
mi_output_image_close3.4 N N N N N N N N N N N Y N N
mi_geoshader_add_result Y N N N N N N N N N N N N N
mi_geoshader_tesselate Y N N N N N N N N N N N N N
mi_geoshader_tesselate_end Y N N N N N N N N N N N N N
mi_geoshader_echo_tag Y N N N N N N N N N N N N N
mi_string_substitute Y Y Y Y Y Y Y Y Y Y Y Y Y Y
mi_volume_num_shaders N N N N N N Y N N N N N N N
mi_volume_cur_shader N N N N N N Y N N N N N N N
mi_volume_tags N N N N N N Y N N N N N N N
mi_volume_user_color N N N N N N Y N N N N N N N
Obsolete Aux. Functions
mi_*_info N Y Y Y Y Y Y Y Y Y Y Y Y Y
Contour Functions
mi_get_contour_line N N N N N N N N N N N Y N N
mi_add_contour_lines N N N N N N N N N N N Y N N
Light Mapping Functions
mi_lightmap_edit N N N N N N N N N N N N Y N
mi_lightmap_edit_end N N N N N N N N N N N N Y N
Memory Allocation
mi_mem_* Y Y Y Y Y Y Y Y Y Y Y Y Y Y
Thread Parallelism, Locks
mi_init_lock Y Y Y Y Y Y Y Y Y Y Y Y Y Y
mi_delete_lock Y Y Y Y Y Y Y Y Y Y Y Y Y Y
mi_lock Y Y Y Y Y Y Y Y Y Y Y Y Y Y
mi_unlock Y Y Y Y Y Y Y Y Y Y Y Y Y Y
mi_par_localvpu2.1 Y Y Y Y Y Y Y Y Y Y Y Y Y Y
mi_par_nthreads2.1 Y Y Y Y Y Y Y Y Y Y Y Y Y Y
mi_par_aborted Y Y Y Y Y Y Y Y Y Y Y Y Y Y
Messages and Errors
mi_fatal Y Y Y Y Y Y Y Y Y Y Y Y Y Y
mi_error Y Y Y Y Y Y Y Y Y Y Y Y Y Y
mi_warning Y Y Y Y Y Y Y Y Y Y Y Y Y Y
mi_info Y Y Y Y Y Y Y Y Y Y Y Y Y Y
mi_progress Y Y Y Y Y Y Y Y Y Y Y Y Y Y
mi_debug Y Y Y Y Y Y Y Y Y Y Y Y Y Y
mi_vdebug Y Y Y Y Y Y Y Y Y Y Y Y Y Y

See page statevartable for a similar table listing available state variables.

home << prev next >> contents  


Copyright © 1986-2007 by mental images GmbH