- "NDC" Occlusion Passes
- Support has been added for occlusion passes, which can create ambient
occlusion effects automatically, much like a shadow map or reflection
map. A new occlusion
map generator allows the generation of a occlusion cache (.ocf) and/or map
data. Shaders may use this precalculated occlusion
data with the new Occlusion
- Z-Stencil (Depthmask) Hider
- Support has been added for the new z-stencil (depthmask) hider feature
of PRMan 11.5. Slim's reference map generators can be used to
perform a render pass in which surfaces which are either nearer or
farther than depth values in a depth map will be culled. The depth map
required by this pass is a special kind of "subpixel" depth
map which can be generated by Slim's new "Depth Mask" map
- Custom Template Menu Configuration
- There is a new "CreateAppearanceMenu" pref in slim.ini which allows a site
to customize the "Create Appearance" menu in Slim's Palette Editor.
- Lazy Template Loading
- The slim.ini file now supports "lazy-load" syntax. This
allows templates to be loaded only when they are used. This means that only
foundational templates are automatically loaded at startup, and optional templates are
"lazily-loaded" loaded as needed. Templates can still be
preloaded as before.
- New Texture Editor Interface
- A new Texture Editor has been added which provides an improved
interface for editing txmake arguments and previewing their effects.
- Slider Improvements
- Slider ranges are now dynamically adjustable. When the user enters
values beyond the template-specified range (including precision), the
slider range adjusts.
- There's a new "DefaultSliderPrecision" preference which
defaults to 0.01.
- There are new "GetMin", "GetMax", "GetPrecision", "GetUserRange", and
"SetUserRange" accessor methods for appearance properties.
- Arbitrary Custom Data
- A "UserData" feature has been added to Slim. "UserData" is an optional set
of name/value pairs that can be associated with any palette, appearance
or property. Slim does nothing with this data except make sure it gets
saved and copied. This feature is currently only available via
scripting. See the new methods of palettes, appearances, and properties
called "SetUserData" and "GetUserData".
- Improved Combine Template (float)
- There's a new, more powerful Combine (float) template. It supports
more operations, unlimited parameters for operations like product and
sum, and a "custom" field for entering an RSL expression. This
template also demonstrates the new "msghandler" feature of appearance
- New Message Handler for Network Parameters
- A new keyword called "msghandler" is now understood by
appearance parameters in Slim templates. Template authors can specify a
tcl proc to call when a parameter's value or provider are changed. This
makes more dynamic templates possible without resorting to custom ui's.
See the updated Combine (float) template for examples of msghandler
- True Unique Shader Names
- Improvements have been made to how Slim generates unique names for
shaders. The new "UniqueNameDomain" pref allows a site to customize how
appearance names are kept unique. Options include session, palette,
group, and history (old behavior). The new "MaintainUniqueNames" pref can
enable a check for uniqueness at every name change or hierarchy change;
this is off when "UniqueNameDomain" is set to history. See slim.ini for
- Improvements have been made to Slim's detection of dirtiness in palettes
- Optimizations have been made to querying appearances in palettes
("slim GetAppearances"). The changes yield about a 3x speedup for
- Optimizations have been made to redrawing in the Palette Editor, making it
more manageable when a large number (>100) of appearances are visible.
- Optimizations have been made to code which generates the RIB
representation of appearances ("slim GetRIB"). Significant speedup
should be seen for shader networks larger than about 20 nodes.
- An "Edit" command has been added to Appearance menus in
palettes, so users have an alternative to double-clicking to raise the
- A "Recompile All" command has been added to the Palette Editor's
Commands menu which forces recompilation of all appearances in a palette.
- The "slim WindowCmd" now accepts a palette handle as the window
argument, to facilitate raising and lowering palettes via
- Multiple Slim processes which use an external renderer can now
run simultaneously on the same machine.
- An option has been added to reference map generators which allows them to generate either a final image or a texture map.
- The default pixel filter has been changed to seperable-catmull-rom.
- Enhancements have been made to the Swiss Army surface template.
- Occlusion Map improvements:
Note: These fixes and enhancements have been added to the existing occlusion templates, so users will need to reload.
- Support for blur and saturation has been added.
- Blur and saturation are varying (connectable).
- Support has been added for floating point reference and occlusion passes. Set "Use Quantization" to 0 under the Expert collection.
- The check boxes for enabling which kinds of shaders should be evaluated during occlusion or reference passes now have the correct effects, including Displacements.
- There are no longer pinching artifacts in areas where rays reflect straight back at the camera.
- One can now "Select Parents" of an appearance via its "Call Graph" menu.
- Slim's palette editor now warns the user if a palette has been modified behind Slim's back since last read and offers to re-read.
- The appearance "Flatten" command now accepts an optional -name parameter to control the name of the constructed shader.
- There's a new scripting method for Slim appearance functions called GetConnectionClients, which returns a list of all the upstream parameters that the appearance function is connected to.
- There's a new scripting method for Slim appearances called Export.
- External read-only palettes can now be removed from a Maya scene or saved via "Save As
". These menu options used to be disabled.
- A conspicuous READ ONLY is displayed in the title bar of read only palettes.
- The wording in some dialog boxes has changed for clarity.
- New slim templates:
- BuildColor build a color from independent float channels.
- RSLVarsF,C visualizers for shading language "globals" (Cs, Os, N, I, etc.)
- AOV use Arbitrary Output Variables in a shader.
- Do-It-Yourself additive shading model.
- CombineDisplacement has been updated to support arbitrary layers.
- Two new templates for combining color and float lists have been added: CombineFloat List and CombineColor List.
- There is a new entry to texture menus to invoke user specified image editor on an image. NOTE: You must use a text editor to establish your preferred
image editor in RAT.ini. Furthermore, your image editor must accept an image file as the last invocation argument.
- Some handy new hot-key bindings have been added to the graph editor.
- Hide Unselected <KeyPress-u>
- Hide Selected <KeyPress-h>
- Graph Children <KeyPress-c>
- Graph Parents <KeyPress-p>
- Graph Selected Children <KeyPress-s>
- One can now specify from the "tcl" menu of a parameter
expression whether it should be evaluated within the context of mtor or
slim. Mtor is still the default context for
performance reasons, but if slim scripting methods are
required, the slim context can be chosen.
- When duplicating a shader network by dragging onto another palette, extra
copies of some child nodes are no longer generated.
- When an external palette is loaded from a read-only file, the Palette
Editor now respects the read-only status by disabling menus and displaying a
- When internalizing an external palette, names of shader instances no
longer change to a name based on the Master.
- Slim now dirties shaders when a .slim file contains an error.
- The "Raise All" and "Lower All" commands in MTOR's
Slim menu now behave reliably.
- An "invalid image" error no longer crops up when using custom
templates with types not defined by Slim.
- People who script the location of "torShaders" with "workspace SetDir" will find that it now works reliably.
- The popup appearance menu in Slim's graph view is functional again.
- Slim appearance networks can once again be exported via the Appearance Editor's "File|Export
" menu option.
- The "Custom Template Organization" preference, which causes templates to be organized by vendor, is functional again. However, by default it is now overridden by the "CreateAppearanceMenu" pref in slim.ini; this pref can be changed to an empty string for the old style of menu organization.
- Custom menu labels defined in the "CreateAppearanceMenu" pref no longer have a problem with spaces.
- Authors of shadeop DSOs which use Rx* calls can now render with Slim's internal swatch renderer on Linux and Irix. On Windows, Slim will crash when an Rx* symbol is encountered, so we recommend that Windows users change their swatch renderer to prman when such shadeops are in use.
- In the graph editor, the Ctl-z key binding for "Undo" now behaves reliably.
- You can reload some lazily loaded templates.
- TCL expressions on RIB attributes now work.
- The scripting method GetProperties no longer returns deleted appearances.
- The IndirectLight template has been restored to the menus.
- Tcl boxes on ensembles now work.
- Slim will crash when an Rx* symbol is encountered
in a shadeop DSO, so we recommend that Windows users change their swatch renderer to prman when such shadeops are in use.