Slim

Slim 8.0

 

Slim 8.0 marks a significant step forward in usability and support for the advanced shading features in Pixar's RenderMan. Highlights of this release include:

  • Support for templates with multiple outputs
  • Support for co-shaders and shader objects
  • Light templates for RenderMan for Maya
  • Important improvements to Slim Packages and Instances
  • More intuitive Slim Session behavior
  • Significant fixes in the User Interface
The release also features new templates and nodes, a number of non-trivial bug fixes, and various other improvements.

New Features

  • Co-shader Support — Slim supports co-shaders. Slim now offers co-shader support in the form of a co-shader template and a coshaderSC shading component. The co-shader template allows users to connect a color to it and assign it a __category and a method name. The shading component can access a co-shader based on category or name, and will evaluate the method specified. You can add co-shaders to your Maya scene, and attach them to transform nodes or shading groups. These will then be picked up by the co-shader shading component and the color is returned to the shader.
  • Subsurface Scattering — Slim now supports RfM's implicit pass mechanism for subsurface scattering, as well as the new subsurface() shadeop.
  • Multiple Output Templates — Slim supports templates with multiple outputs, i.e. templates of type "multiple". Middle mouse click on an Appearance to bring up a menu of outputs.
  • New Templates — The following new templates have been added:
    CoShader Shading Model and CoShader Shading Component
    These templates allow the user to create a co-shader, and then access the co-shader from within another appearance.
    Computed Partials
    Computes partial derivatives based on an input s and t. This helps overcome problems with anisotropic effects.
    Construct Manifold
    Builds a manifold from a point and two vectors.
    Fresnel (multiple)
    Provides access to relfection and refraction vectors and coefficients using Fresnel or Schlick's Approximation.
    SL Box (multiple)
    There is a new SL box template that allows the creation of multiple output parameters.
    Normal Map
    Decodes a tangent space normal map, such as those created by Maya, and provides a normal output.
    Normal Map Displacement Shader
    A new displacement shader that accepts a normal as an input, which can be provided via the new Normal Map template.
    Bump Map (multiple)
    Exposes the Normal and Point from a the bump computation.
  • Updated Templates — The following templates have been updated with new functionality through the multiple output mechanism:
    • Occlusion (multiple)
    • RayTraceHitTest (multiple)

Enhancements

  • Asset Management — In conjunction with the sweeping RenderMan Studio changes to asset management, there have been significant changes to the management of Slim-created assets, whether they be palettes, shaders, sessions, or other. A perusal of the associated documentation for Asset Management and Sessions would likely be most beneficial to Slim users.
  • Direct Attachment from Slim — Users can now attach Slim appearances (surface, displacement, or volume shaders) to Maya geometry directly from the Slim user interface, without having to Add to Scene. To facilitate this workflow, a new preference has been introduced in Slim: Client Instances, which has two options, "Unique" and "Multiple". When set to "Unique", Slim will attempt to add only one instance of an appearance to Maya when you "Add to Scene" or "Attach". When set to "Multiple", Slim will not re-use shader instances when they are added to the scene or attached to geometry in Maya.
  • Slim Baking — Support for the Slim Bake node has been "re-introduced". The Bake node allows users to create a bake pass within a Slim template, baking data to a 2D texture map or a 3D point cloud or brick map.
  • Users can now "Select Attached" from the Slim UI for a given appearance.
  • Context menus (right click in the graph view or the parameter menus) are much faster.
  • Slim now supports light templates for RfM.
  • Slim now returns an exit code to the calling environment if run in command line mode that indicates the success or failure of the script being run.
  • Shader Instances can now be copied from library palettes to user palettes.
  • There is a new progress bar for preview swatch renders.
  • dotforslim has been updated, eliminating lib updates that were necessary on newer Linux distributions and the installation of Xcode on OS X.
  • When closing an internal palette (with RfM), users are now warned that they are actually deleting said palette. Menu items have been changed to more accurately reflect the associated actions.
  • When used with RfM, Slim no longer uniquefies an internal palette when you save it (thereby making it external).
  • There have been several cosmetic enhancements to Palettes, including improved icons and balloon help items.
  • Shader referencing across referenced files has been improved.

Bug Fixes

  • Packages and Instances
    • Shader Instances now properly propagate changes from the Master, unless they have been set (and thus overridden) in the Instance.
    • Making packages no longer leaves the graph view layouts in an inconsistent state, a condition that could, for example, lead to showing partial contents of a new package.
    • Connections to Package Instance are now reliably saved into palette files. Previously the order they appeared in the file could produce palettes that did not save their connections.
    • Changing a parameter from internal to external after making a Shader Instance no longer makes the Shader Instance fail to work.
    • Closing a palette that has packages in it no longer generates spurious “missing palette” errors.
    • Using instanced packages in networks now compiles properly.
    • Deleting a Shader Instance no longer creates problems with palette state.
    • Packages that have parameters of the type "mustvary" that are not connected now generate the correct shader.
    • Making Shader Instances of Shader Instances now works if the destination palette is not the same as the source. This would be the case if you had a Shader Instance in a library palette or you used the CreateInstance script command's destination option.
    • Library palettes are no longer reloaded while Slim is running, nor are users prompted to reload library palettes.
    • The script function CreateInstance now works when the source palette is a library palette and the destination is a normal palette.
    • CreateInstance no longer randomly renames appearances.
    • Shader Instances now update properly.
  • User Interface
    • Deleting nodes no longer causes upstream nodes to become invisible in a layout and the Add to layout button to be inoperable.
    • The script function CreateConnection now properly updates the graph view and is "undoable".
    • Removing a layer from the Layer, LayerGeneral, or Combine appearances no longer leaves the graph view in an inconsistent state.
    • A bug that could cause the Undo menu to incorrectly show an option for undo-ing commands that did not actually run, resulting in various erroneous behaviors, has been fixed.
    • Using a separate Appearance Editor window no longer produces error messages if you return to a single window mode.
    • Fixed a bug that, in some situations, would leave a palette unsaveable with error messages referring to non-existent layouts when making changes to a network.
    • Using the AddChild script function no longer creates duplicate appearance errors when used to move an appearance from one palette to another.
    • Delete Disconnected now behaves correctly.
    • A Windows-only bug that could cause the context menu to reappear after performing an action on an appearance in the graph view has been fixed.
  • Templates
    • Adding new Slim templates now gets reflected immediately in the context menus.
    • Custom commands are now passed to proper object.
    • Diffuse Indirect templates now function correctly when used with an Environment Light.
    • The Diffuse and Specular shading components now behave properly when used with the EnvLight template (this was an MTOR-only issue).
  • Miscellaneous
    • Disconnected parameters are now properly set to External, rather than Default.
    • The “hotkey” shortcut control + i now behaves as expected.
    • Nested sub-palette hierarchy is duplicated from a library palette
    • A bug that could prevent deleting nested appearances from being "undoable" in some situations has been fixed.
    • A bug that prevented users from importing .slim files with networks in the file has been fixed.
    • Fixed a translation error that could cause RfM renders to fail with a “Shader not Found” error.
    • The Consolidate script function now works. Previously any pararameter not overriden locally could cause Consolidate to appear to run but generate an unusable appearance.
    • Networks that implicitly require type converters no longer generate bad sl.
    • Nesting appearances no longer generate bad shaders if a node appears in more than one network.
    • Slim now properly calls the SetValueProvider message handler.
    • Shaders get correctly recompiled when parameters are set to external. Previously, if you set a parameter to external, rendering the preview swatch would not update to reflect any change in the parameter.
    • Detaching parameters of type Collection from generative shaders no longer generates bad sl.
    • A bug with using preferFullPaths that prevented images from opening properly has been fixed.
    • The flipbooks time slider now functions as expected.
    • Color format in the color picker and Gamma and Gain are no longer improperly greyed out in the Slim preferences window.
    • The Slim function IsDownRev now behaves as expected.
    • A bug that could cause erroneous errors when editing image handles has been fixed.
    • Fixed a bug that could cause the ColorPicker "format" button to appear locked for no apparent reason.

Changes in 8.0.1

Bug Fixes
  • A bug in the code generation for ShaderObjects with parameters whose values come from the shader parameterlist.
  • A bug that prevented the .slim extension from being properly appended to an exported network has been fixed.

Changes in 8.0.2

New Features
  • There is a new Slim subsurface scattering node that supports the creation of explicit passes in RfM.
  • The Slim window is now "always on top", by default. Users can restore the previous behavior by setting the ParentSlimsWindow pref to 0. (Windows-only)
  • There is a new DefaultArrangeMethod pref to choose whether auto-arrange is set for new layouts. Possible values are auto, manual, and smart. Smart will use whichever arrange method was last chosen, be it from the arrange button or from a palette load.
Enhancements
  • The interaction of Slim appearances with the RenderMan for Maya Environment Light has been improved.
Bug Fixes
  • The behavior of Sessions has been improved, particularly across referenced files and in terms of recognizing and updating "dirty" Sessions.
  • There have been numerous fixes and improvements to the behavior of instances and packages.
  • Support for "old style" baking (via MTOR) has been fixed.
  • A bug that prevented inserting a new node between two existing nodes (via a middle-mouse click) has been fixed.
  • The Undo behavior in the Appearance Editor has been improved.
  • An MTOR-only bug that could cause problems with MEL scripts leading to erroneous dirty errors has been fixed.
  • Fixed a bug that could lead to a crash when saving palettes and/or Sessions with large icons.
  • Slim now "Reverts to Saved" when the "Revert to Saved" operation is selected in Maya.
  • The behavior of faceforward has been fixed such that Slim appearances more closely match RfM's translation of Maya materials, i.e. Slim's Blinn looks more like Maya's Blinn.
  • An MTOR-only bug that caused the cast shadows attribute on the Ensemble node to misbehave has been fixed.
  • Fixed an MTOR-only bug with light adaptors that could result in spurious errors and vanishing templates when new connections were made.

Known Issues

  • Slim Sessions — There have been significant changes to Slim Sessions, causing certain incompatibilities with existing Sessions. Older session files will be ignored by Slim, so when opening older projects, none of the existing palettes will be visible. There is, however, a simple workaround:
    • External Palettes can simply be opened in the current Session.
    • Internal palettes from older Sessions can be restored using the Session object's Import method. Import will merge the old Session's palettes into the current Session.
    • Imported Appearances will need to be recompiled.
    Additionally, the "Edit in Slim" button in Maya will not work with legacy Sessions, and pressing the button anyway will generate a warning message.
  • Slim appearances are not fully compatible with Maya Area Lights.
  • The reflectivity components of the Slim Blinn appearance do not behave as expected.