Slim 6.0 Release Notes

New Features
Bug Fixes
Known Issues

New Features
  • "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 Map template.
  • 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 generator.
  •  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 parameters.
  • 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 syntax.
  • 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 more information.

  • Improvements have been made to Slim's detection of “dirtiness” in palettes across sessions.
  • Optimizations have been made to querying appearances in palettes ("slim GetAppearances"). The changes yield about a 3x speedup for querying palettes.
  • 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 Appearance Editor.
  • 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 script.
  • 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:
    • 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.
    Note: These fixes and enhancements have been added to the existing occlusion templates, so users will need to reload.
  • 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.


Bug Fixes
  • 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 purple background.
  • 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.


Known Issues
  • 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.



Pixar Animation Studios
(510) 752-3000 (voice)   (510) 752-3151 (fax)
Copyright © 1996- Pixar. All rights reserved.
RenderMan™ is a registered trademark of Pixar.