Shader Tree
The Shader Tree is the main interface for adding materials and textures to surfaces in your scene. Modo uses a layered approach to texturing, allowing a simple to use, yet very powerful, method for assigning textures exactly where you want them, and creating complex looks for surfaces with ease. The visual impact on your scene is evaluated bottom to top. An image layer with 100% opacity that is placed above a procedural checker pattern obscures the checkers in the rendered image. Changing the image layer's transparency gradually reveals the checkered layer below, as it becomes less opaque. For specific information on working with Shader Tree layers, see Shader Tree.
The viewport itself, in the default configuration, appears in the upper-right viewport group. Click the Shading tab to make the viewport visible. Whenever a layer is selected within the viewport, its associated settings appear in the Properties viewport, found directly below. If the properties are not visible, one may need to also click the tab to reveal the viewport.
Shader Tree UI
The viewport has three UI modes: compact, small, and full. Depending on your amount of screen real estate, you can adjust the viewport by dragging any edge on it. The viewport dynamically scales, giving you the appropriate set of options based on the viewport's size.
In compact mode, the first four buttons R, L, E, and C represent the render item, the lights, the environment, and the camera. The bar on the right, when clicked, opens a contextual menu, allowing you to choose individual layers specific to each R, L, E, and C setting. Additional layers can be added using the commands Texture > Add Shader Tree Layer > <layer type>.
In small mode, the Render, Light, Environment and Camera buttons become full sized and the layer selector appears below.
In full mode, each item is represented as a layer with a corresponding icon. Clicking on any item selects it, allowing you to edit the various properties. Multiple layers can be selected using the Shift and Ctrl key modifiers. Layers can also be dragged and dropped within the viewport, changing the layer order, which affects how layers feed into the render outputs. They can also be dragged into material groups to better organize scenes with many surfaces.
Additional controls appear above the viewport as well. The View option changes how the layers of the Shader Tree are displayed, with the Materials option offering a simplified look at the Shader Tree's layers. The Filter option automatically shows/hides various type of layers. The Assign Materials button opens the Polygon Set Material/Part/Smoothing dialog and tags any selected polygons. The Add Layer button allows you to add additional layers to the Shader Tree. The Find button offers a search function that uses standard pattern matching to locate specific layers (detailed in Search Function Pattern Matching). The Show Only Selected Items button button toggles the visibility of shading layers, based on item selection in the Item List.
Within the Shader Tree window the icon column allows you to enable or disable the effect of a specific layer without removing it. Simply click the icon to toggle or drag over multiple eyes to toggle them simultaneously. The Effect column allows you to specify in what way the layer contributes to the rendered image. Right-click on the effect name to open a context menu with other additional options. Any layer name, once selected, can be right-clicked to provide a context menu with several options:
• Rename - allows you to assign a new name to the specified layer.
• Editor Color - 12 color options are provided for colorizing the Shader Tree layer itself. This is meant to be used as a visual organizational device. Choosing any of the colors from the supplied menu applies the selected color as the layer background.
• Properties - opens the Properties viewport with the selected layer's corresponding attribute settings.
• Select Polygons - this command makes all the polygons in the scene related to the current mask selected, switching the Modo interface into Polygons selection mode, if not already active.
• Duplicate - this command creates a copy of a layer with identical settings. Changes in the original item are not reflected in the duplicate layer, nor are modifications to the duplicate reflected in its original layer.
• Create Instance - creates a clone of a layer that references the original source. Changes to one layer automatically propagate to all instances. Instanced layers are denoted by their italicized name in the Shader Tree. This is especially useful when separate surfaces with identical properties reside within different masks. When instances are used, changing one item's attributes automatically clones the changes on the instance. Changes to the instance itself act as local overrides, modifying the attribute directly, while changes are not applied back to the source of the instance. Further changes to the source are propagated, except to those changes made individually on each instance on a channel-by-channel basis.
• Lock/Unlock Preset - when the Lock command is applied to any Library material, this prevents any accidental changes from being applied to the material group. The target layer need to be Unlocked for further editing. The Lock/Unlock commands have no effect on standard Shader Tree layers.
• Select Instances - if a layer has any instances of it in the Shader Tree, the Select Instances command selects all the associated instances of the target automatically.
• Select Source of Instance - the Select Source of Instance command selects the parent source items of any instance. Instances are denoted by their italicized name in the Shader Tree.
• Reference/De-Reference (only available when right-clicking over a Material Group Item) - a reference acts similar to an instance but works to clone all layers within a Material Group Item, instead of just a single layer. Referencing a material group clones the entire group hierarchy as a single layer that can be applied elsewhere in the Shader Tree. To create a reference layer, right-click on the target Material Group Item (it must contain at least one layer) and select the command Reference. Click on the resulting reference item and drag-and-drop the layer into another Shader Tree location to see the results. Changes made to the source are propagated to the reference layer(s). Reference layers cannot be modified directly, unless the De-Reference command is applied, converting the reference back to standard Shader Tree layers. De-Reference also converts library references to standard layers. (References essentially operate like library items, only outside of the library folder instead.)
• Copy/Paste/Delete - copy, paste, or delete entire layers, as well as the settings of individual layers themselves. When pasting values from one layer to another, the layers must be of the same type, that is to say, a material item to a material item.
• Preset Browsers Palette - this command opens a Preset Browser palette.
• Save Preset - a preset stores settings so they can be applied at a later time. In the case of materials, a preset stores Shader Tree layers, with an associated icon for visual browsing, in the Preset Browser. A material preset can be as simple as a single layer, or it can contain any number of layers with complex blending. For multi-layer presets, these must all be contained under a single material group item. Right-clicking on the target layer and selecting the Save Preset option from the contextual menu presents you with an OS dialog, prompting where to save the preset itself. If you want the resulting preset to show up automatically within the default Preset Browser structure, it's necessary to navigate to the directory where presets are stored and save in the appropriate folder. You can also create a new directory for saving presets, but make sure to use the (add path) command in the Preset Browser to make it visible within the browser viewport. Once the File is saved, a default icon is generated that represents the settings of the preset. If you prefer to produce your own custom icon, this can be generated ahead of time and assigned with the Save Preset with Thumbnail command.
• Save Preset with Thumbnail - the Save Preset with Thumbnail command works in the same way as the Save Preset command above, but once the preset is saved, a second dialog opens allowing you to specify any saved image that is then used as the browser icon.
• Change Type - this command offers the ability to convert a layer of one type, such as an image map, to another type, such as a procedural. Associated texture locators retain their settings, if applicable, but layers themselves lose their settings.
• Bake to Texture - this command offers the ability to generate a texture map image of a layer. Baking textures from inside the Shader Tree is useful for baking a single effect, such as Color or Diffuse, into an image, whereas the Bake command from the Render menu bakes all light and texture contributors into a final shaded image. It's reasonable to think of the Shader Tree level of baking as similar to flattening layers in Photoshop. Only layers of the same effect setting underneath the texture layer that is triggering the bake contribute to the baked layer. Once baked, this texture can remain in the Shader Tree as a pre-computed result of all contributors, which results in a savings of render time, and provides a real-time view of the effect. The Bake to Texture command requires a UV map on the baked surface, as well as a blank image map to bake into. For more on baking textures, see Baking.
• Bake to File - the Bake to File command is functionally identical to the Bake to Texture command above, but writes the resulting texture as a file to disc, with the location specified by you. When applying the command, an OS file requester opens to specify the file name, locations, and format. The second dialog is where the resolution and bit depth are specified. When saving to a 16-bit or greater format, the Floating Point option must be enabled.
• Bake From Object to Texture - this command offers the ability to use the UV map of a low-polygon count model to bake a texture map from a higher-polygon count model. Maps can be used for any of the various effects, including diffuse color, displacement, and normal. Like Bake to Texture, a UV map is required as well as a blank image map to bake into. Both surfaces must have different material names and cannot share the same UV map. When calculating a displacement map, the distance setting from the requester dialog should be used as the Displacement Distance setting in the material dialog box when applied. For more on baking textures, see Baking.
• Reload Image - this command reloads the image as saved to disk. This is useful when edits made in an external application don't trigger Modo to reload it automatically, or when you wish to undo a series of internal edits all at once.
• Replace Image - this command opens an OS file requester dialog allowing you to select an alternative bitmap image that replaces the selected image, while retaining its existing settings.
• Open Image Folder - this command opens the saved files' folder location on the internal hard disk using the systems default file manager.
Tip: For a full overview of working with the layers of the Shader Tree, see Shader Tree.
Search Function Pattern Matching
Clicking the Find button when in the Shading viewport, opens the search function for finding specific layers. below are the following
Syntax |
Description |
Example |
||
---|---|---|---|---|
Inputs |
Pattern |
Matches |
||
* |
Searches for any characters that might occur in place of the asterisk. |
Apple, Apricot, Grape |
Ap* |
Apple, Apricot |
# |
Searches for any characters that might occur in place of the pound sign and, if there are none, continues searching for the next sub-pattern listed. |
Ae, Ape, Appe, App, Axe |
A#pe |
Ae, Ape, Appe |
? |
Searches for any single character. For example, a? matches any two-characer strings starting with a. #? means "any number of any characters", and is functionally identical to *. |
Axe, Ape, Asp |
A?e |
Axe, Ape |
~ |
Negates the expression that follows its use. For example, #~x? matches any two letter string except those starting with x. Similarly, ~(x?) matches anything except a two letter string beginning with x (so, xxa or ab but not xa). |
Axe, Ape, Asp |
A~xe |
Ape, Asp |
| (vertical bar) |
Searches for any one of the items separated by the vertical bar character. Any number of vertical bars can be used. |
Axe, Ape, Abe |
A(x|b)e |
Axe, Abe |
[abc] |
Searches for any one of the characters inside the square brackets. |
Axe, Ace, Abe, Abc, ACE |
A[bcBC]e |
Ace, Abe, ACE |
[a-z] |
Searches for any of the range of characters within the square brackets. Multiple ranges cab be combined, such as [a-dA-Dxyz]. |
Axe, Ace, Abe, Ate, ABE |
A[a-kA-K]e |
Ace, ABE |
' (apostrophe) |
Escape from the pattern matching search function. |
A[1], A[2], A(3) |
A'[?'] |
A[1], A[2] |