home | << prev | next >> | contents |
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