A Slim appearance is a container of properties. The Appearance Editor is a user interface for manipulating a Slim appearance and its properties. Using the appearance editor you can:
Also when using Slim as an appearance server (e.g.: for MTOR) you can:
Invoke a scene rendering
![]()
The Appearance Editor interface can be divided into four main sections:
- Menus
- Preview Rendering
- Appearance Information / Navigation
- Property Editing
File MenuThe File Menu contains functions related to reading and writing files.
|
![]() |
Flipbook MenuThis menu contains options for creating flipbooks. A flipbook is a sequence of rendered frames that form an animation whose purpose is to help visualize or debug your appearance. The frame count and renderer for flipbooks is controlled in the Preferences Editor.
|
![]() |
Edit Menu
|
![]() |
Appearance Menu
|
![]() |
Commands Menu
|
![]() |
These controls affect rendering of a preview of the shader into the image swatch in the top left corner of the editor. You invoke a preview rendering via the menubar command "Render Swatch" or by pressing directly on the swatch itself.
|
![]() |
![]()
- 1. Type Icon
- An icon for the type of appearance being edited is displayed here. In this case, we see the icon for color functions.
- 2. Appearance Name
- Use this entry to name your appearance. Because this name is often used to name shaders that are generated, Slim may make minor changes to the name to ensure that the name is unique and produces a valid filename.
- 3. Navigation
- The back and forward buttons work like your favorite web browser, moving you back and forth through the history of appearances you've edited with the appearance editor.
The up arrow is a menu button that presents a menu of functions that have parameters directly connected to the edited appearance, that is, one level up in the call graph.
- 4. Description
- A description of the appearance can be viewed by clicking on the small information icon.
- 5. Appearance Template
- Appearances created from templates will display the Appearance Template here. Users who have turned on Expert Menus will also see the version of the template used. When the template used is an old version that requires upgrading, this field will appear in red.
- 5. Appearance Master (not shown)
- Appearances created from imported shaders will display the name of the shader (or master) here. The Appearance Master is the string used to refer to your shader in the RenderMan interface. Depending on your studio's requirements, it may be useful to refer to shaders and textures via either an absolute or a relative pathname. Moreover it may be useful to refer to them using abstractions that are resolved at RIB generation time. Here are some common forms:
- relative reference: rmanshader/myshader
- absolute reference: /home/slimuser/project1/rmanshader/myshader
- relative abstract reference: $torShaders/myshader
- another relative abstract reference: $torShaders/$INSTANCENAME
- absolute abstract reference: $WSRoot/$torShaders/$INSTANCENAME
When using relative references and abstractions, the settings and search paths associated with the current workspace control the interpretation or resolution of an external resource. The Workspace Editor is used to establish these settings.
- 5. Appearance Master Reference Toggle (not shown)
- This control attempts to automatically convert between an absolute and a relative reference for the shader. The current workspace's search paths are used to either strip or add pathname components.
By default, there are a few appearance names that have special significance to MTOR. These names are often used in conjunction with special shaders and RIB boxes to create special effects and scene optimizations. When you prefix the name of your appearance with one of these special names, you tell MTOR to attach your appearance to an abstract RenderMan concept as opposed to a specific object in your scene.
Simply prefix your appearance with one of the following:
Every appearance contains a number of properties. These are the elements of how a typical property is displayed:
![]()
- 1. Property Icon / Description
- This icon indicates the class of property displayed and its provider. The presence of an i indicates that a description of that property can be accessed by clicking the icon.
- 2. Property Label
- This is the name of the property that is being edited. Double-click this text to change it. The label will change color when a value is set for a parameter.
- 3. Value Editor
- This is an editor specific to the property's type.
- 4. Property Menu
- This menu displays a list of actions and options for your the property. The menu is specific to the class of property displayed.
The class of a property is indicated by the icon to left of a property's name. These are the classes of properties with values that can be edited:
Technically another class of property, collections provide a grouping mechanism for other properties. Collections can serve several different purposes:
Properties come in several different types. The Appearance Editor presents a different editor for each of these types. The most common types and the editors displayed are presented below:
float A single floating-point value, floats are edited using a widget which features both a numerical entry (or "VSlider") and a graphical slider. |
![]() |
color An RGB color, colors are edited using Slim's Color Editor, which is raised by clicking the color chip. Additionally, the intensity of a color can be quickly adjusted using the accompanying slider. | ![]() |
point / vector / normal These three types represent geometric entities in three dimensional space. The X, Y, and Z components are each represented with a VSlider. |
![]() |
string Plain old strings are generally not that interesting, though should you want to edit one, an editor is provided. Far more interesting are string subtypes (below). | ![]() |
float (selector) an option menu for choosing among a defined list of values | ![]() |
float (switch) a check box for setting an on/off value | ![]() |
string (bigstring) A string too long to be edited in one line, the bigstring subtype relies on an external text editor to edit its value. | ![]() |
string (texture) A string which is the name of a texturemap, the texture subtype (as well as similar subtypes for reflection, environment, shadow, etc.) specifies that the string is the name of a texture file on disk. This editor includes access to texture conversion tools. | ![]() |
The property menu combines several settings and commands for your property. There are three main sections of the property menu. Depending on the traits of the property, the menu may display some or all of these sections.
![]() |
|
The default widget associated with each parameter is only one way to set its value. The value of a parameter can actually come from a number of different places and the Value Provider section allows you to choose this.
Different properties have different combinations of provider options available. The color of the property icon indicates a property's provider.
By default, the value of a parameter will usually be stored as a constant, Internal Value. This means that the value will be hard-coded into the shader and cannot be changed without regenerating the shader.
A parameter with a green icon indicates that it has an External Value. External parameters are declared as parameters of the shader allowing their values to change without regenerating the shader. When bundling, flattening, or instancing a shader, only parameters with external values will be shown.
Sometimes expressing the value of a parameter via a static value isn't sufficiently powerful. You might want to, for example, request that the value change from frame to frame via a TCL expression. Setting the Value Provider to TCL Expression causes the icon to turn orange and presents a different entry widget where you can enter a numerical expression. The property menu will contain commands to control and test your expression. More details on the TCL expression subsystem are described elsewhere.
The most powerful Value Provider is Connection. Setting the Value Provider to Connection causes the property icon to turn purple and displays the connection type in the property menu. The value of the parameter is provided by the output of another function. Because each function can have parameters with values provided by other functions, you can build up powerful networks of functions interconnected through their parameters.
Note that the name of the connection appearance is displayed within a button. You can use this button to navigate to the connected appearance. Button-1 will edit the appearance in the current editor. Button-2 will edit the appearance in a new editor.
Some parameters may specify that their value must be provided by another function and will specify a default function to connect to. In this case, the Manifold parameter has specified that by default, it should connect to a SurfacePoint function. You can override this default and connect the parameter to a different function, but the parameter must always be connected to something.
![]() |
|
Slim accepts both TIFF files and Pixar texture files (*.tex), a format optimized for high quality texture filtering and high performance. (Slim does not accept other file formats.) You can specifiy textures for use in your shaders through various "file" parameters associated with your shaders similar to the image above. You can also convert TIFF textures directly to Pixar's efficient texture format using the texture conversion menu described below. Through the texture conversion menu you can also specify how a texture will repeat.
In the figure above, notice that Slim provides two controls adjacent to the text entry field.& The leftmost "folder" button simply invokes the File Picker, which is the most convenient means of loading in a texture file. (Depending on the Full Paths preference, the File Picker will return either a fully qualified path name or a relative pathname.) With TIFF files we can request that Slim / MTOR transparently convert the images to Pixar's texture file format using the texture conversion menu.
To the right of the File Picker button is the Texture button. This
menu button raises this texture menu, which contains a settings for
converting textures, a reference menu, and commands to show or edit your image.
The purpose of these menus is to help you to construct a TCL expression that evaluates to the name of a dynamically constructed texture map.
If you prefer to type TCL expressions directly, there's no need to use these menu at all. The same would be true if the canonical expressions manipulated by these menus isn't sufficient for your purposes.
Some string parameters are identified as texture map parameters by their subtype field in their .slim file. In addition to standard color maps, RenderMan supports several different computed texture types: shadow maps, reflection maps and environment maps.
The Texture Settings Editor is a convenience provided to simplify the task of controlling the details of texture conversion. By selecting entries in this menu you are building up the argument list to the Slim provided TCL procedure: txmake. This procedure is defined in $RATTREE/etc/TORExpression.tcl and loaded via $RATTREE/etc/TOR.ini. You can override this procedure via mechanisms described elsewhere. The TCL proc txmake is merely a cover function for RenderMan's standard texture conversion features and specifically Pixar's txmake utility program. Its purpose is to help track all texture conversion requests and to calculate the mapping between source texture name and destination.
Here are the primary controls:
![]()
- File
- The image file.
- Convert
- This switch controls whether the file should be converted to a texture. The texture controls appear when this switch is on.
- Type
- Type of texture to create. Type is one of:
- texturemap : standard color or grayscale image
- shadowmap : Pixar's shadowmap format, converted from a depth map.
- env latlong : environment created from a lat-long projection stored in a two-dimensional image.
- Precision
- Precision for each channel of each pixel. By default, each channel is represented by eight bits (a byte). Using -short will represent each channel with a 16 bit (signed) integer. Using -float will represent each channel with a 32-bit floating point number. Note that these options will only work if there is at least as much precision in the source file.
- Resize
- For reasons internal to the texture mapping software, texture files must be an even power of two in width and height (i.e. 256, 512, 1024, 2048, etc). Any input image which is not already a power of two in both dimensions will be resized, as described below:
- up : the image is resized up to the next higher power of two.
- down : the image is resized down to the next lower power of two.
- round : the image is resized to the nearest power of two.
- none : the image is not resized, the texture map size will be the next higher power of two. Texture file area not covered by the image will be set to black. Texture coordinates will be 0 to 1 across the resulting image.
- Access
- How textures will be accessed when the image is resized:
- corrected : the image will retain its aspect ratio when mapped onto a square patch.
- normalized : texture coordinates will be 0 to 1 across both dimensions.
- Extra Args
- Extra arguments for the txmake call.
- Smode/Tmode Icons
- the icons next to the gridded texture determine the repeat mode for your texture in each direction. This applies when accessing the texture outside of the range 0-1. (See examples in diagram below.)
Remember that these controls are only meaningful for external, pre-existing textures. You should use the Reference Texture Menu for computed maps.
- black : fill the nether regions with black
- periodic : tile texture
- clamp : smear the pixels at the edges indefinitely
|
![]() |
![]() |
![]() |
Original Texture | "Black" smode/tmode |
"Periodic" smode/tmode |
"Clamped" smode/tmode |
![]() |
The Reference Texture is a convenience provided to simplify the task
of controlling the details of texture referencing. Use this menu to
refer to a computed map that's calculated from the point of view of an
object in the Slim Client's scene.
Most commonly you'll want to compute shadow maps from the point of view of a light source object. You can attach a Slim light appearance to the light source object. Now you can use special TOR Attributes of the appearance to cause the generation of a shadow map via an additional rendering pass. Alternatively you can create a Map Generator Appearance and attach that to an object in your scene. |
In the final rendering you can refer to the computed shadowmap with the TCL proc shdmap as follows:
Here we've used $OBJNAME to refer to the object that the light appearance is attached to. In other situations you'll need to manually type the name of the map generator object.
Another common situation requires the specification of an animated sequence of images for a texture map. Often you'll have a sequence of frames whose duration matches the duration of your shot. In these cases something like the following should suffice:
Here we used the variable F2 to refer to the current frame 0 padded to two digits. If the current frame is 2, then the argument to txmake reduces to sequence/rat.02. You can use $f, $F, $F1, $F2, $F3, $F4 or $F5 to choose other padding options.
A more complicated situations arises when you need to remap a range of images of one duration into another duration. In this case you can write your own custom remapping TCL proc or you can use the fit function we provide.
Here, note that we invoke the fit function by placing it within square brackets. This is replaced the string that fit calculates based its knowledge of the current frame and the arguments provided. In this examples, our output frame numbers serve as the input frame range for the fit function. As the current frame goes from 0 to 100, fit returns a number between 1 and 30 and this number is padded with zeros to two digits resulting in a filename like: sequence/rat.29. The source of the fit function is provided as an example remapping procedure and can be found at $RATTREE/etc/RATExpression.tcl.
Appearances that have been collected using the Bundle command will be displayed as a hierarchy in the appearance editor:
This hierarchy presents appearances in your bundle with parameters marked as External. This hierarchy can be edited. Select Edit Bundle View from the Edit menu, and the view will change to edit mode:![]()
In Edit mode, appearances that are marked hidden will be displayed, but in italics. Appearances and collections are hidden if they do not contain any external parameters, or if they only contain another appearance or collection. To override the visibility of an appearance or collection, use the right-mouse menu.![]()
You can also rearrange these parameters using drag and drop. Drag any parameter to wherever in the hierarchy you want it to be displayed:![]()
When you are finished editing, press the "Done Editing" button at the bottom of the editor. If you wish to add more appearances or parameters into your bundle, you can open it using the bundle icon (in any editor). When you close the bundle back up, you should find your new parameters in the bundle. You should also find that any changes that you've made to the hierarchy will be preserved. (Note, though, that this only is the case when opening and closing a bundle. Exploding a bundled node removes all hierarchy information.)![]()
Pixar Animation Studios
|