MayaMan Help Contents

# MayaMan Global Illumination Options

This dialog contains options that are specific to renderers that support Radiance and/or Caustics. Consult the documentation for your renderer to see whether it supports global illumination or not.

### Radiance

#### Enable Indirect Ray Visibility

When turned off all objects will be invisible to indirect rays, this can save time and memory when it is known that no shaders will cast indirect rays.

#### Radiance Enabled

When turned on MayaMan will insert a special light shader that will compute various radiance based global illumination effects. When enabled, the Create Default Lights If None In Scene global switch is ignored as the global illumination lighting counts as a light and therefore there are not none in the scene.

#### Colour Bleed

When enabled the GI will include colour transfer from hit objects... without it's an ambient occlusion system.

#### Intensity

A gain factor, if the light is properly balanced in the scene there should be no need to use anything other than 1.0.

#### Max Error

A maximum error metric. Smaller numbers cause recomputation to happen more often. Larger numbers render faster, but you will see artifacts in the form of obvious "splotches" in the neighborhood of each sample. We have found that 0.1 works reasonably well, but you should experiment. In any case, this is a fairly straightforward time/quality knob.

For GI usage scenarios that involve conversion to a brickmap this parameter is passed as the maxerror flag to brickmake.

#### Max Pixel Distance

Forces recomputation based roughly on (raster space) distance. A value of 10 says to recompute the indirect illumination when no previous sample is within roughly 10 pixels, even if the estimated error is below the allowable maxerror threshold. You may be able to get away with this number being 20 or higher.

#### Samples

How many rays to cast in order to estimate irradiance, when generating new samples. Larger is less noise, but more time. Should be obvious how this is used. Use as low a number as you can stand the appearance, as rendering time is directly proportional to this.

#### Automatic Indirect Visibility Disable Size

Automatically turn off indirect visibility of objects whose bounding sphere has a radius that is smaller than this value. Set to 0.0 to make all objects visible to indirect rays. Can decrease render time and reduce noise. There is also a MayaManModel attribute that can be used to force an object to be invisible to indirect rays but there is no way to turn on the visibility of an object that has been turned off by this automatic check.

#### Envname

The name of a preconverted texture file to be used for rays that exit the scene.

#### Env Orientation

Connect to a place3d in order to control the lookup into the above mentioned Envname texture.

#### Save File / Seed File / Alt Seed File

If you specify the name of a 'save file', then some renderers can cache the results of its radiance calculations in that file. The file can later be specified as a 'seed file' and read in, thus avoiding the bulk of the calculations. This can only be done if the radiance solution is the same in both cases, i.e. if the scene geometry/lighting has not changed. This is most useful for 'flythrough' animations where only the camera is moving.

Normally when doing a sequence render with a save file setting that does not vary per-frame (ie: cache.#f.dat) MayaMan will only insert the save file option on the first frame... this is to avoid multiple processes trying to read/write to the same file during a distributed render. This can be overridden with the save file step factor to allow accumulation of a cache. A setting of 0 gives the previous behaviour, any other setting will insert the save option every 'step' frames (without taking the render frame step into account). This is probably only safe to use when rendering walkthroughs of static geometry in a serial fashion, that is to say, one frame after the other in a non-distributed rendering environment.

To handle moving objects in renderers without a way of specifying which objects are moving (currently only Air can do this) you must specify a seed/save file combination that is unique per frame. For example `c:/temp/gi_cache.#f.dat`.

Air's 'moving' attribute can be used to build up a global cache file. First hide all the moving objects, use a non-frame specialized file name for both seed and save file (ie: `c:/temp/gi_cache.dat`). Render the scene from several angles to populate the cache. Now make the moving objects visible, put the non-frame specialized file in as the alt seed file and the frame specialized file in as the seed file, ie:

    	Save:     c:/temp/gi_cache.#f.dat
    	Seed:     c:/temp/gi_cache.#f.dat
    	Alt Seed: c:/temp/gi_cache.dat

When the frame specialized cache file is found it will be used otherwise the alt seed file is used. Air invalidates the cache within 'MaxDist' for any moving objects.... MayaMan enables this behaviour when the alt-seed file is found and disables it when the frame-specialized file is used.

#### File Granularity

If the granularity is 'Per Scene' then the seed/save file should be a file as only one file will be created for the whole scene, for example, when file step is 0 a setting like this is good: `c:/temp/scene_gi.icf`, when file step is not 0 then use a setting like this: `c:/temp/scene_gi.#f.icf`.

If the granularity is 'Per Model' or 'Per Material' then the seed/save file should be a directory name, for example, when file step is 0 a setting like this is good: `c:/temp/gi/`, when file step is not 0 then use a setting like this: `c:/temp/gi/#f/`.

Note the trailing slash used in directory name examples. If there are characters after the last slash when a dir name is expected then it is used as an extension.... for example, let's say that a bleed cache file is to be saved and both global and reflective/refractive caustics are going to be used, in all cases the granularity is model... in this case the following settings would be good:

    	save file           = c:/temp/gi/#f/.icf
    	global photon file  = c:/temp/gi/#f/.gph
    	caustic photon file = c:/temp/gi/#f/.cph

Will cause files like 'plane01.icf', 'plane01.gph' and 'plane01.cph' to be written to a frame specific directory.

When using per-model and per-material files it will often be the case that not all possible names will actually end up containing data which will result in warnings about missing files during the beauty pass... these can be safely ignored.

#### Max Dist

When Max Dist is enabled the probe rays will only travel the given distance before it is assumed that they haven't hit anything... judicious use of this parameter can have a big impact on render time.

#### Max Variation

Some renderers/algorithms take a maxvariation parameter, for example, prman's occlusion() call. As this is not just a parameter related to raytraced solutions it's out here with max dist.

For some renderers (ie: prman 13 and later) this parameter is used instead of maxerror in most circumstances.

#### Ray Hit Color/Ray Miss Color

When a ray is being traced for radiance effects it will either hit some geometry or not, the Hit Color is used to scale the color returned by rays that hit geometry while Miss Color is used to scale rays that miss geometry. The effect of this varies depending the setting of Color Bleed, when turned off (Ambient Occlusion mode) then the Miss Color is, in effect, the raw light that's getting pumped into the scene from all directions and the Hit Color is the color of the resulting shadows. The default settings of Miss=white, Hit=black are a good starting point for Ambient Occlusion but unsuitable for Color Bleed mode. When Color Bleed is on the Hit color must not be black or the amount of color transfered through bleeding will get set to black.

When an environment map is being used the Miss color is used to scale the value returned by the map lookup.

### PRMan11 Global Photon Map

When colour bleed is on it may be useful to use global photon maps to accelerate rendering. Using this mode will cause a seperate rib to be created that works a bit like a shadow map generation prepass. The main rib will then reference the photon map generated in the prepass.

A seperate set of raydepth/maxdiffusedepth/maxspeculardepth controls are presented as it's often useful to use much larger settings than would be tolerable in the main rib.

As with the main GI files you can specify a granularity and the same naming rules apply.

### Air Specific

#### Prepass

Only supported by air, compute indirect illumination in a two pass way that gives smoother results.

#### Indirect Shading Attributes

A group of Air specific controls that dictate if surfaces shaders are observed by indirect rays and if not, what to do instead. Consult the Air documentation "Shading for Indirect Illumination" for more details on these controls.

### SubSurface Quality

#### Format Scale

This value is used to scale the RiFormat value used in the rib that computes subsurface data files. Lower numbers result in smaller data sets which are faster but less accurate. No per-material override exists for this as all subsurface objects are processed in a single rib. Some renderers respond much better to this control than they do to the shading rate scale controls.

#### Shading Rate Scale

This value is used in conjunction with the material-attributes subsurface shading rate scale to determine the actual shading rate used during subsurface computations.

### Caustics

If you want to see caustic light effects you need to enable the effect here, and also set some of the objects and lights in your scene to generate caustics.

#### Max Pixel Distance

Limits the distance (in raster space) over which it will consider caustic information. The larger this number, the fewer total photons will need to be traced, which results in your caustics being calculated faster. The appearance of the caustics will also be smoother. If the maxpixeldist is too large, the caustics will appear too blurry. As the number gets smaller, your caustics will be more finely focused, but may get noisy if you don't use enough total photons.

#### NGather

Sets the minimum number of photons to gather in order to estimate the caustic at a point. Increasing this number will give a more accurate caustic, but will be more expensive.

MayaMan Help Contents