| 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 shader3.x |
| Ss | state shaderstate shader3.3 |
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_backside3.x | N | N | N | N | Y | Y | Y | Y | Y | Y | N | N | Y | N |
| mi_compute_avg_radiance3.3 | 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_enumerate3.2 | N | N | N | N | Y | Y | Y | Y | Y | N | N | N | Y | Y |
| mi_shaderstate_set3.2 | N | N | N | N | Y | Y | Y | Y | Y | N | N | N | Y | Y |
| mi_shaderstate_get3.2 | 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_tag3.x | 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_shaders3.x | N | N | N | N | N | N | Y | N | N | N | N | N | N | N |
| mi_volume_cur_shader3.x | N | N | N | N | N | N | Y | N | N | N | N | N | N | N |
| mi_volume_tags3.x | N | N | N | N | N | N | Y | N | N | N | N | N | N | N |
| mi_volume_user_color3.x | 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_edit3.x | N | N | N | N | N | N | N | N | N | N | N | N | Y | N |
| mi_lightmap_edit_end3.x | 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 |