Smart Palettes

Smart Palettes

With Palettes and Subpalettes, you keep your appearances explicitly organized. Smart Palettes provide a way to organize your appearances dynamically.

Membership in a Smart Palette is defined by one or more criteria. An example Smart Palette might be defined as the set of appearances that use the Blinn template. The contents of this Smart Palette will update dynamically as new appearances are added to its parent palette.

Creating and Editing a Smart Palette

To create a new Smart Palette:

Palette -> Create Smart Palette

This will create a new Smart Palette rooted under the selected palette and raise the Smart Palette Editor.

images/smartpalette_editor.jpg

Use this editor to name your Smart Palette and define its criteria. In this example, we've defined the "Blinn" Smart Palette using a criterion that checks if the template ID for an appearance contains the word "blinn."

By default, a Smart Palette consists of one criterion. You can add more using the + button. With multiple criteria, you will have the option of selecting whether membership is defined by meeting all of the specified criteria or any of them.

You can edit the criteria of an existing Smart Palette by double-clicking its icon.

Nesting and Refinement

The candidates for membership in a Smart Palette are the members of its parent palette. Typically this is a palette file, but it can also be another Smart Palette. Smart Palettes nested in this fashion serve as increasing levels of refinement.

smartpalette_unnested smartpalette_nested

In both of the images above, the "fractals" Smart Palette is defined to contain appearances that use templates containing the word "fractal." When nested under the palette file, this displays appearances of all types that use a fractal template. When nested under the "floats" smart palette, however, the "fractals" Smart Palette only displays appearances of type float.

Global Smart Palettes

Global Smart Palettes operate on all of the appearances currently loaded. These Smart Palettes are not saved with any particular palette file; they are in fact defined and saved using preferences.

images/smartPalette.png

Global Smart Palettes allow you to operate on all of your current appearances, regardless of their source palette. Slim ships with a number of predefined Global Smart Palettes that allow you to quickly see just attachable appearances, just surface shaders, and so forth. You are free to redefine, reorder, and further customize these.

A second set of Global Smart Palettes is used when the Palette View is in Create Mode. These Smart Palettes provide the same refinement mechanism, but rather than showing current appearances, operate on the available templates you can use to create new appearances.

You will find that these Smart Palettes are referred to elsewhere in the system. Whether creating an appearance directly in the Network View or when creating a connection in the Appearance View, you will find that these Smart Palettes are used to organize available appearances and templates. Here, for example, is the context menu in the Network View. Note the groups shown: Surfaces, Displacements, ライト, Volumes, Other. These are the same as those in the Palette View shown.

images/context-menu.jpg

Smart Palette Criteria

These are the possible critera you can use to define a Smart Palette:

Attachment Type

The attachment type for the appearance. Example attachment types include surface, displacement, light. The "Attachable" Global Smart Palette is defined using a criterion where "Attachment Type" is not (blank) (i.e. it is defined).

Class

The class of appearance (e.g. ::Slim::Function). See the Scripting Glossary for an index of Slim classes.

Compilation Necessary

Whether the shader for the appearance needs generation and compilation.

Light Type

Type of light shader, e.g. point, distant, spot, environment.

Modification Time

Time when the shader is last modified. Predicates for this criteria are specified relative to the current time (e.g. "less than 2 hours ago").

Name

Name of the appearance. This is most often useful using a test such as "begins with" or "contains."

Output Types

The types output by the appearance.

Tags

Possible appearances tags.

Template ID

The template ID for the appearance (e.g. pixar,Blinn#2). This is most often useful using a test such as "contains," e.g. "contains" "blinn." (Tests are case-insensitive.)

Template Obsolete

The template used by this appearance is obsolete, and can potentially be upgraded.