home << prev next >> contents  


Options

The option data structure pointed to by state->options has the following format, split here over three tables due to its size. The option structure may never be written to by shaders.

type name content
int min_samples minimum sampling level
int max_samples maximum sampling level
miColor contrast sampling contrast
miColor time_contrast temporal sampling contrast
miBoolean samplelock noise animation locking on/off
char render_space coordinate space: 'c' for camera space, 'o' for object space
int task_size rendered image rectangle size
miCBoolean pixel_preview selective pixel sampling mode
miCBoolean task_preview selective task sampling mode
miCBoolean visible_lights have visible area lights in the scene
miBoolean strips tessellation to strips and fans
miCBoolean no_lens disable lens shaders
miCBoolean no_volume disable volume shaders
miCBoolean no_geometry disable geometry shaders
miCBoolean no_displace disable displace shaders
miUint1 no_output disable output shaders
miTag userdata optional user data blocks
miApprox approx approximation override
miApprox approx_displace displacement approximation override
miTag contour_contrast contour contrast shader
miTag contour_store contour store shader
miTag inh_funcdecl inheritance/traversal declaration
miUint1 diagnostic_mode miSCENE_DIAG_ flag bitmap
float diag_photon_density density for diagnostic photon mode
float diag_grid_size grid size for diagnostic grid mode
miBoolean desaturate fade to white, no clipping
miBoolean dither enable frame buffer dithering
miBoolean nopremult disable premultiplication
int colorclip color clipping modes
float gamma frame buffer gamma value, 1 for none
miColor luminance_weight weights to calculate luminance
int no_images highest frame buffer index plus 1
miPointer image [ ] frame buffers for output shaders
miImg_type image_types [ ] image types of frame buffers
miUint4 write_image[ ] bit 0: sample, bit 1: write
miBoolean interp_image[ ] interpolate frame buffer
miTag images_info3.4 frame buffer information
miTag fb_dir3.4 frame buffer directory

Rendering algorithm options:

type name content
miBoolean trace ray tracing turned on?
miBoolean scanline scanline mode turned on?
miBoolean motion motion blur turned on?
float shutter_delay shutter open time for motion blur
float shutter shutter close time for motion blur
miCBoolean autovolume automatic volume management
char filter nonlocal sampling filter: 'b' for box, 't' for triangle, 'g' for Gauss, 'm' for Mitchell, or 'l' for Lanczos
float filter_size_x filter size in x
float filter_size_y filter size in y
int reflection_depth max reflection trace depth
int refraction_depth max refraction trace depth
int trace_depth max combined trace depth
char face 'f' for front, 'b' for back, or 'a' for both faces
char field 'o' for odd or 'e' for even fields, 0 for frames
float jitter sample jittering: 0 for off, 1 for on
char shadow 0 for off, 1 for normal, 's' for segmented, 'l' for sorted
char use_shadow_maps use shadow maps for rendering
miCBoolean rendering_shadow_maps currently working on a shadow map rectangle
char recompute_shadow_maps 'n' for reuse, 'y' for rebuild
miCBoolean shadow_map_motion motion blurred shadowmaps
char acceleration ray tracing algorithm: 'b' for BSP, 'g' for grid
short grid_res[3] grid resolution in world space: X, Y, Z
short grid_max_depth maximum grid nesting
short grid_max_size maximum grid leaf size
float grid_max_size2.1 grid resolution correction
int space_max_size maximum BSP leaf size
int space_max_depth maximum BSP nesting
int space_max_mem maximum bsp memory in MB, 0 for unlimited

Global illumination options:

type name content
int photon_reflection_depth max photon reflection trace depth
int photon_refraction_depth max photon refraction trace depth
int photon_trace_depth max combined photon trace depth
miTag photonmap_file photon map file name
miTag finalgather_file finalgather map file name
miBoolean photonmap_rebuild rebuild photon map, don't reuse
miCBoolean finalgather_rebuild rebuild final gather map
miBoolean caustic caustics on/off
int caustic_accuracy number of caustic photons in estimate
float caustic_radius maximum distance for caustic photons in estimate
float caustic_filter_const filter constant for caustics
char caustic_filter caustic filter type: 'b' for box, 'c' for cone, 'g' for Gauss
miUint1 caustic_flag default caustic flag for objects
miBoolean globillum global illumination on/off
int globillum_accuracy number of globillum photons in estimate
float globillum_radius maximum distance for globillum photons in estimate
miUint1 globillum_flag default globillum flag for objects
int photonvol_accuracy number of volume photons in estimate
float photonvol_radius maximum distance for volume photons in estimate
int finalgather final gathering: 0 for off, 1 for on, or 'f' for fastlookup
int finalgather_rays number of rays per final gather point
float finalgather_maxradius maximum distance between final gather points
float finalgather_minradius minimum distance between final gather points
miCBoolean finalgather_view final gather radii are specified in raster pixels
miUint1 n_motion_vectors motion transformation path length

min_samples

The minimum oversampling level. 0 means one sample per pixel on average (mental ray actually samples corners, not centers of pixels). 1 means subdivide once, which results in four subpixels. 2 means each subpixel is subdivided again, resulting in 16 subpixels, and so on. -1 means one sample per four pixels, etc.

max_samples

After initial subdivision controlled by min_samples, pixels are further subdivided if the contrast demands it, up to the level determined by max_samples.

contrast

If two neighboring samples are more different than the contrast, the pixel is subdivided unless the max_samples limit has been reached.

time_contrast

Approximately an inverse to the number of time oversampling steps in motion blur rendering.

samplelock

If enabled, mental ray attempts to cast the same samples in each frame, which means that the graininess due to low sampling stays in place, instead of flickering. This is achieved by not initializing sampling sequences with the frame number. This has an effect only where the image doesn't change because otherwise oversampling will cast different samples.

note that min_samples, max_samples, contrast, and time_contrast are not used by the rasterizer.

render_space

This is 'o' for object space and 'c' for camera space. Camera space rendering is supported for compatibility with mental ray 1.x, but not recommended for new scenes.

task_size

The size of one image rectangle into which the image to render is subdivided. The default is 32 or 64.

pixel_preview

This is enabled during interactive rendering, where mental ray renders only those pixels that are affected by a user change, usually by tuning a shader parameter.

task_preview

This is enabled if the application has entered a mode where only certain image rectangles are rendered.

visible_lights

This is true if there are any lights marked "visible" in the currently rendered scene.

strips

The tessellator will attempt to pack triangles into strips and fans. This is not useful for rendering with mental ray, and in fact incurs overhead due to strip and fan construction, but it can greatly improve the performance of OpenGL viewers.

no_*

These flags disable lens, volume, geometry, displace, and output shader calls, respectively, or edge merging. They are useful for quick preview rendering. Shaders may still explicitly call the disabled shaders, but mental ray won't.

userdata

User data blocks are independent named toplevel scene entities that hold structured or unstructured data of any kind. Structured data is declared much like shader parameters, while unstructured data is a raw byte stream with a fixed size. User data is useful for large amounts of shared scene data.

approx

May be set to any approximation method, which will override approximations specified in objects. This is useful for quick preview rendering where geometric precision does not matter. This is disabled if the method is set to miAPPROX_STYLE_NONE.

approx_displace

This is the same as approx, but applies to displacement approximations in objects.

contour_contrast

The contour contrast shader, or 0.

contour_store

The contour store shader, or 0.

inh_funcdecl

The declaration of the inheritance function or traversal function, or 0.

diagnostic_mode

If nonzero, enables various diagnostic modes that put false-color diagnostic data on top of the rendered image. The modes are: miSCENE_DIAG_SAMPLES shows where image samples were taken. miSCENE_DIAG_PHOTON_D shows photon density. miSCENE_DIAG_PHOTON_I shows photon irradiance. miSCENE_DIAG_GRID_O overlays object-space grid lines. miSCENE_DIAG_GRID_W overlays world-space grid lines. miSCENE_DIAG_GRID_C overlays camera-space grid lines. miSCENE_DIAG_BSP_D shows the BSP tree depth. miSCENE_DIAG_BSP_L shows the BSP leaf size. miSCENE_DIAG_FG shows final gather points.

diag_photon_density

Calibrates the colors for the photon diagnostic modes.

diag_grid_size

Determines the grid line distance in the grid diagnostic modes.

desaturate

Enables fading colors to white, instead of clipping individual components, when storing colors in 8-bit or 16-bit frame buffers. This and the following four fields used to be accessible with the mi_img_getmode shader interface function in mental ray 2.1, but have moved into the options in mental ray 3.0.

dither

Enables dithering when storing colors in 8-bit or 16-bit frame buffers.

nopremult

Disables premultiplication, and stores unpremultiplied colors in frame buffers.

colorclip

Selects the color clipping mode applied when storing colors in 8-bit or 16-bit frame buffers, to make sure that RGB do not exceed alpha in premultiplication mode: miIMG_COLORCLIP_RGB preserves RGB and adjusts alpha if necessary. miIMG_COLORCLIP_ALPHA preserves alpha and adjusts RGB if necessary. miIMG_COLORCLIP_RAW disables color clipping. In mental ray 3.5, color clipping is applied to the color averaged over the time if motion blur is rendered.

gamma

The gamma value applied when storing colors in 8-bit or 16-bit frame buffers. 1.0 disables gamma correction.

luminance_weight

The weights applied to RGB by the mi_luminance shader interface function to compute a luminance value.

no_images

The number of the highest defined frame buffer, plus 1. See image below for frame buffer numbers.

image[ ]

An array of pointers to frame buffers. It is available only in output shaders. The type is miPointer to ensure network transparency, requiring access with image[i].p; the real type is miImg_image *. The array is indexed with the predefined indices, each corresponding to one of the standard frame buffers that are enabled with appropriate output statements. If a frame buffer was not enabled, the corresponding pointer is 0. The predefined indices are: miRC_IMAGE_RGBA is the standard color image frame buffer. miRC_IMAGE_Z contains object depths. miRC_IMAGE_N contains normal vectors. miRC_IMAGE_M contains motion vectors. miRC_IMAGE_TAG contains object labels. miRC_IMAGE_COVERAGE contains coverage fractions of the object that contributed most to this pixel. If enabled, the Z, N, M, and TAG frame buffers contain values from that object. miRC_IMAGE_PPREV2.1 contains shader bitmaps used for pixel previewing (interactive rendering). miRC_IMAGE_USER is the first of the eight user frame buffers. The limitation to eight frame buffers has been removed in mental ray 3.4. All frame buffers have the same resolution as specified in the camera. The frame buffer pointers can be passed to the buffer access functions, mi_img_get_color, mi_img_put_color, etc. For each type of frame buffer, there are functions to retrieve and store a pixel value that accept the frame buffer pointer as their first argument. Motion vector data can be accessed with the normal-vector access functions; the data format is identical.

In mental ray 3.4, the images field has been removed. See mi_output_image_open and mi_output_image_close. In addition, the arrays image_types, write_image and interp_image are combined in the miFb_info structure. The database array of this structure is stored in images_info.

image_types[ ]

Contains the type of each defined frame buffer. Removed in mental ray 3.4.

write_image[ ]

For each defined frame buffer, bit 0 is set if the frame buffer is sampled, and bit 1 is set if the frame buffer is written. Removed in mental ray 3.4.

interp_image[ ]

For each defined frame buffer, the flag is set if the frame buffer is interpolated ("+" was set in the scene) or aliased ("-" was set in the scene). Removed in mental ray 3.4.

images_info

3.4 An array of type miFb_info specifying the frame buffers.

Rendering algorithm options in the state→options structure:

trace

If this flag is miTRUE, secondary ray tracing (reflection and refraction) is enabled. If it is miFALSE, only eye and transparency rays are evaluated, refraction rays degenerate to transparency rays, lens shaders cannot modify the ray origin and direction, and no shadows are computed regardless of the shadow flag.

scanline

If this flag is miTRUE, the scanline algorithm is enabled for primary rays. If scanline is miFALSE, primary rays are cast using pure ray tracing, which may slow down the rendering process.

motion

If this flag is miTRUE, motion blurring is enabled; if it is miFALSE, motion blurring is disabled even if motion vectors are present.

shutter

If motion is set to miTRUE, the shutter determines the length of time the shutter is open, which controls the length of the blur. 1.0 means that the blur is as long as the motion vectors of motion transformations dictate. Values greater than 1.0 are not recommended because motion paths consisting of multiple motion

shutter_delay

If motion is set to miTRUE, the shutter delay determines the time the shutter opens. It closes at the shutter time, which must be equal to or greater than shutter_delay. A shutter range of 0...1 means that the blur uses the entire range of the motion vectors, motion path, or motion transformations.

autovolume

If set, mental ray will keep track of which volumes a point is in. The shader can then use the shader interface functions mi_volume_num_shaders, mi_volume_cur_shader, mi_volume_user_color, and mi_volume_tags.

filter

Nonlocal filtering weighs samples according to their distance from the pixel center. Possible values are 'b' for box, 't' for triangle, and 'g' for gauss.

filter_size_x

Contains the filter width for collecting image samples into frame buffer pixels.

filter_size_y

Contains the filter height.

reflection_depth

The maximal allowed number of recursive reflections. A reflection ray will only by cast when this limit is not exceeded. If set to 0, no secondary reflection rays will be cast. See reflection_level above.

refraction_depth

The maximal allowed number of recursive refractions. A refraction ray will only be cast if this number is not exceeded. If set to 0, no secondary refraction or transparency rays will be cast. See refraction_level above.

trace_depth

The maximal summed trace depth. mental ray will allow this many segments of the ray tree when it is followed through the scene, with any combination of reflections and refractions permitted by the previous two values until the total trace depth is reached. A ray will only be cast if this number is not exceeded.

face

This variable specifies whether front-facing, back-facing, or all triangles are taken into account. All others are ignored, resulting in speed improvements. This is also called back face culling. The possible values are 'f' (front), 'b' (back), and 'a' (all).

field

Field rendering, if turned on, renders only the even or odd scanlines of an image. Two successive renders are then combined to a full frame, resulting in smoother animations. 0 turns off field rendering, 'e' renders only even scanlines (top is odd), and 'o' renders only odd scanlines.

jitter

If set to 1.0, jittering is enabled for samples smaller than a pixel. If set to 0.0, jittering is disabled. Other values are not legal.

shadow

This ASCII character controls shadow casting. If it is 0, shadows are disabled (shadow off); if it is 1, normal shadows are computed in undefined order with volume shaders applied to the light ray (shadow on); if it is 'l', shadow shaders are called in sorted order from the light source towards the illumination point (shadow sort); if it is 's', shadows are computed by tracing the segments between the illumination point, the occluding objects and the light source and applying volume shaders to these segments (shadow segment).

use_shadow_maps

Enables shadow maps if set to miTRUE.

rendering_shadow_maps

If set to miTRUE, mental ray is currently rendering a piece of a shadow map. Shaders will never see miTRUE because no shaders are called during shadow map rendering by mental ray 2.1 or 3.0.

recompute_shadow_maps

If set to 'y', shadow maps will be recomputed even if shadow map files were found. If set to 'n', shadow map files will be used if available. To use shadow map files, the shadow-casting light sources must specify a shadow map file name.

shadow_map_motion

If set to miTRUE, shadow maps will contain object motion blur, which will extend the shadows in the direction of motion.

acceleration

The ray tracing algorithm. This is either 'b' (a BSP algorithm), or 'g' (a hierarchical uniform grid algorithm only available in mental ray 2.1 and 3.1 but not 3.0). Note that by default, primary rays are computed using a scanline algorithm if possible.

grid_res[ ]

Controls the number of grid voxels in world space, in each dimension, if the acceleration algorithm is grid.

grid_max_depth

Controls the number of levels of the grid tree, formed if a grid voxel of one level contains too much geometry and must be subdivided by a subgrid on a lower level. It has an effect only if the acceleration algorithm is grid.

grid_max_size

Controls the allowed complexity of a grid voxel before the voxel must be subdivided. It has an effect only if the acceleration algorithm is grid. If the grid_max_depth limit was reached, mental ray may exceed grid_max_size.

grid_max_size2.1

mental ray 2.1 had a different non-adaptive and non-recursive grid algorithm with only one parameter, a floating-point size that adjusts the resolution computed by mental ray. 1.0 accepts mental ray's resolution estimate, larger values increase the resolution, and smaller values decrease it. It has an effect only if the acceleration algorithm is grid.

space_max_depth

Controls the number of levels of the BSP tree, formed if a BSP voxel of one level contains too much geometry and must be subdivided by a subvoxel on a lower level. It has an effect only if the acceleration algorithm is BSP.

space_max_size

Controls the allowed complexity of a BSP voxel before the voxel must be subdivided. It has an effect only if the acceleration algorithm is BSP. If the space_max_depth limit was reached, mental ray may exceed space_max_size.

space_max_mem

Limits the memory used by the BSP tree to the specified number of megabytes. This is mostly an emergency brake because it may result in an unbalanced BSP tree.

Global illumination options in the state→options structure:

photon_reflection_depth

The maximal allowed number of recursive photon reflections. Similar to reflection_depth. Default is 5.

photon_refraction_depth

The maximal allowed number of photon refractions. Similar to refraction_depth. Default is 5.

photon_trace_depth

The maximal summed photon trace depth. The maximum number of photon bounces is limited by this number. Default is 5.

photonmap_file

The name of the file where photon maps will be loaded and stored. This is a tag; the actual string can be accessed with mi_db_access.

finalgather_file

The name of the file where final gathering point maps will be loaded and stored. Note that unlike photon maps, final gather maps can be extended, and will grow over time unless periodically deleted.

photonmap_rebuild

If set, the photon map file, if specified, will not be loaded, and the photon map is rebuilt from scratch. It will still be written if photonmap_file is defined.

finalgather_rebuild

If set, the final gather map file, if specified, will not be loaded, and the final gather map is rebuilt from scratch. It will still be written if finalgather_file is defined.

caustic

Specifies whether caustics are being simulated or not.

caustic_accuracy

The maximum number of photons to use when computing a caustic irradiance estimate.

caustic_radius

The radius around the current point in which the caustic irradiance estimate will look for photons.

caustic_filter_const

The filter constant for caustic estimates within the caustic radius.

caustic_filter

The type of filter to apply to the photons within the caustic radius: 'b' for box, 'c' for cone, or 'g' for Gaussian.

caustic_flag

If bits 0 or 1 is set, all instances in the scene DAG will behave as if they had bit 0 or 1, respectively, set as well. Bit 0 enables photon casting and bit 1 enables photon reception. This is useful to make all objects in the scene contribute to photon tracing, if the scene was built without photon flags. Older scene creators may not know about these instance flags and leave them undefined.

globillum

Specifies whether global illumination is being simulated or not.

globillum_accuracy

The maximum number of photons to use when computing a global illumination irradiance estimate.

globillum_radius

The radius around the current point in which the global illumination irradiance estimate will look for photons.

globillum_flag

The same as caustic_flag, except that it applies to global illumination, not caustics.

photonvol_accuracy

The maximum number of photons to use when computing a volume global illumination irradiance estimate.

photonvol_radius

The radius around the current point in which the volume global illumination irradiance estimate will look for photons.

finalgather

Specifies whether illumination is computed with final gathering. Final gathering can be combined with global illumination and caustics.

finalgather_rays

The number of rays cast for each final gather point. mental ray 2.1 always casts exactly this number, while mental ray 3.x have an adaptive optimizer that may decide to cast fewer rays than this number, but will never exceed it.

finalgather_maxradius

The maximum distance between final gather points. If a final gathering estimate is needed and no final gather point is within this radius, a new final gather point is computed.

finalgather_minradius

The minimum distance between final gather points. Final gather points will be avoided if they would be closer than this to another final gather point.

finalgather_view

If set, this flag switches final gather radii to raster pixels instead of world space units. This causes final gathering to be view-dependent: distant objects will receive fewer final gather points than close objects.

n_motion_vectors

Specifies the number of segments to be used for motion paths that approximate transformation motion. The default is 1; the maximum number is 15. Larger numbers allow transform motion paths that are more smoothly curved, but also reduce performance.
home << prev next >> contents  


Copyright © 1986-2007 by mental images GmbH