Interface: renderpresets

This Interface provides access to the render presets system introduced in 3ds Max 6.

Methods:

<boolean>Save <integer>which <filename>file <bitArray>categories

Save preset to the specified file using the categories described by the bitArray.

Returns true on success.

The integer which specifies the renderer slot to load into:

0 - Production

1 - Material Editor

2 - ActiveShade

Note:

Integer values greater than 2 will cause a System Exception!

<boolean>Load <integer>which <filename>file <bitArray>categories

Load the preset from the specified file, using the categories described by the bitArray.

Returns true on success.

The integer which specifies the renderer slot to load into:

0 - Production

1 - Material Editor

2 - ActiveShade

<boolean>SaveAll <integer>which <filename>file

Save preset to the specified file using all categories.

Returns true on success.

The integer which specifies the renderer slot to load into:

0 - Production

1 - Material Editor

2 - ActiveShade

<boolean>LoadAll <integer>which <filename>file

Load the indexed preset from the specified file, using all categories.

Returns true on success.

The integer which specifies the renderer slot to load into:

0 - Production

1 - Material Editor

2 - ActiveShade

<boolean>IsFileCompatible <integer>which <filename>file

Returns true if the specified file is compatible with the renderer slot specified by the integer which, false otherwise.

The integer which can be one of the following:

0 - Production

1 - Material Editor

2 - ActiveShade

<string>MapIndexToCategory <filename>file <integer>index

Returns a string containing the name of the category corresponding to the specified index in the supplied file. See example further on this page.

<integer>MapCategoryToIndex <filename>file <string>category

Returns the index corresponding to the specified category name in the supplied file.

<string>MapSceneIndexToCategory <integer>which <integer>index

Returns a string containing the name of the category corresponding to the renderer slot specified by the integer which:

0 - Production

1 - Material Editor

2 - ActiveShade

<integer>MapSceneCategoryToIndex <integer>which <string>category

Returns the index corresponding to the specified category name in the renderer slot specified by the integer which:

0 - Production

1 - Material Editor

2 - ActiveShade

<bitArray>LoadCategories <filename>file

Returns the categories available in the specified render presets file as bitArray. Each bit represents a category. See example further on this page.

For Example:

renderPresets.LoadCategories (GetDir #renderPresets + "/mental.ray.no.gi.draft.rps")

#{32..34}

<bitArray>SaveCategories <integer>which

Returns the categories available for the specified renderer as bitArray. The bitArray will have a bit set for each category that can be saved for the specified renderer.

The integer which can be one of the following:

0 - Production

1 - Material Editor

2 - ActiveShade

 

WARNING:

A side effect of saving and loading the Radiosity presets from the Advanced Lighting tab is that your radiosity solution will be lost.

If you have invested a lot of time in the radiosity solution, it is suggested that you not choose the advanced lighting category when loading a render presets file.

 

The following script prints all categories from all Render Presets files. It can be used to "peek" into the files to determine which categories are saved in which file, and what category corresponds to which index in the BitArray.

Example:

(

--Collect all Render Presets files:

theFiles = getFiles (GetDir #renderPresets + "\\*.rps")

--For each Render Presets file,

for f in theFiles do

(

 format "\nRender Preset: %\n" (getFileNameFile f) --Print the file name

 --Get the category indices as BitArray and loop through them,

 --printing the index and the corresponding category name:

 for c in (renderPresets.LoadCategories f) do

  format "%: %\n" c (renderpresets.MapIndexToCategory f c)

)

)

Result:

 

Render Preset: 3dsmax.scanline.no.advanced.lighting.draft.rps

32: Default Scanline Renderer

33: Advanced Lighting

34: Raytracer

 

Render Preset: 3dsmax.scanline.no.advanced.lighting.high.rps

32: Default Scanline Renderer

33: Advanced Lighting

34: Raytracer

 

Render Preset: 3dsmax.scanline.radiosity.draft.rps

3: Environment

32: Default Scanline Renderer

33: Advanced Lighting

34: Raytracer

 

Render Preset: 3dsmax.scanline.radiosity.high.rps

3: Environment

32: Default Scanline Renderer

33: Advanced Lighting

34: Raytracer

 

Render Preset: a.rps

1: Common

4: Render Elements

32: Default Scanline Renderer

33: Advanced Lighting

34: Raytracer

 

Render Preset: b.rps

1: Common

4: Render Elements

32: Default Scanline Renderer

33: Advanced Lighting

34: Raytracer

 

Render Preset: mental.ray.hidden.line.contours.rps

32: mental ray Renderer

33: Processing

 

Render Preset: mental.ray.no.gi.draft.rps

32: mental ray Renderer

33: Processing

34: Indirect Illumination

 

Render Preset: mental.ray.no.gi.high.rps

32: mental ray Renderer

33: Processing

34: Indirect Illumination

OK

OK

 

Using this information, you can easily load just a single category from a file using MAXScript. In the following example, only category 32 - mental ray Renderer will be loaded, but not the categories 33 and 34 (Processing and Indirect Illumination) that are also stored in the file:

Example:

renderpresets.Load 0 (GetDir #renderPresets + "\\mental.ray.no.gi.high.rps") #{32}

 

 

See also

TabbedDialogs - Controlling Tabbed Dialogs

Render Scene Dialog

renderSceneDialog