The Gradient texture layer is an incredibly powerful asset in the shading arsenal. Gradients provide a method for creating parametric materials. Put simply, gradients remap colors or value based input parameters the user defines and produces an output based on the values in the gradient itself. For instance, with a gradient texture you could tell a surface to ramp from purple to light blue based on the incidence angle to the camera or purple to green based on the slope of the surface. You can even control the number of clones in a Replicator based on height and angle of a surface. Gradients are also useful in controlling the color of fur, and Replicators. With so many options, it can feel a little overwhelming; the following samples should help ease any confusion regarding a particular gradients use.
Gradients are added to the shader tree where it is indicated the 'Effect' it will have on the surface, such as Transparency or Diffuse Color. Next, users will need to select the 'Input Parameter' on the Gradient textures properties panel, this defines how the gradient modulates the surface it is affecting. By clicking the 'Edit Gradient' check box users can open the Gradient Editor where the actual gradient is defined. Its usage is covered below. For additional information on adding and using layers, please reference the Shader Tree page of the documentation.
Layer--
Enable: Toggles the effect of the layer on and off, duplicating the functionality of toggling visibility in the Shader Tree. When disabled (unchecked), the layer has no effect on the shading of the scene. However, disabled layers are saved with the scene and are persistent across modo sessions.
Invert: Inverts the RGB values for the layer producing a negative effect.
Blend Mode: Affects blending between different layers of the same effect type, allowing user the ability to stack several layers for different effects. For more on blending, please reference the 'Blend Modes' page of the documentation.
Opacity: Changes the transparency of the current layer. Reducing this values will increasingly reveal lower layers in the shader tree if present, or dim the effect of the layer itself on the surface.
Locator: Gradient layers always have an associated 'Texture Locator' that is automatically created in the 'Item List'. While they typically define the mapping of the texture (way the texture is applied) to the surface, for gradients, the mapping is largely defined by the 'Input Parameter' options. For gradients, the Locator option is necessary to select the appropriate locator that will control certain input parameter effects, such as 'Distance to Locator' and 'Locator Incidence'. Within the Texture Locator options, users may also specify UV maps and others useful options for other parameters.
Surface Gradient--
Input Parameters: There are many different input parameters types, select from one of the various categories to see examples-
Input Parameter - Basic
Clearcoat Amount-- When the Input Parameter is set to 'Clearcoat Amount', the gradient will key off of any Clearcoat texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
|
Clearcoat |
|
Gradient |
|
|
Clearcoat Gradient |
Diffuse Amount-- When the Input Parameter is set to 'Diffuse Amount', the gradient will key off of any Diffuse Amount texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
|
Diffuse Amount |
|
Gradient |
|
|
Diff. Amt. Gradient |
Diffuse Roughness-- When the Input Parameter is set to 'Diffuse Roughness', the gradient will key off of any Diffuse Roughness texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
|
Diffuse Roughness |
|
Gradient |
|
|
Diff. Roughness Gradient |
Dissolve-- When the Input Parameter is set to 'Dissolve', the gradient will key off of any Dissolve texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
|
Dissolve |
|
Gradient |
|
|
Dissolve Gradient |
Luminous Amount-- When the Input Parameter is set to 'Luminous Amount', the gradient will key off of any Luminous Amount texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
|
Luminous Amount |
|
Gradient |
|
|
Luminous Amt. Gradient |
Reflection Amount-- When the Input Parameter is set to 'Reflection Amount', the gradient will key off of any Reflection Amount texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
|
Reflection Amount |
|
Gradient |
|
|
Reflection Amt. Gradient |
Reflection Fresnel-- When the Input Parameter is set to 'Reflection Fresnel', the gradient will key off of any Fresnel texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
|
Reflection Fresnel |
|
Gradient |
|
|
Ref. Fresnel Gradient |
Refraction Roughness-- When the Input Parameter is set to 'Refraction Roughness', the gradient will key off of any Refraction Roughness texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
|
Refraction Roughness |
|
Gradient |
|
|
Clearcoat Gradient |
Roughness-- When the Input Parameter is set to 'Roughness', the gradient will key off of any Roughness texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
|
Roughness |
|
Gradient |
|
|
Roughness Gradient |
Specular Amount-- When the Input Parameter is set to 'Specular', the gradient will key off of any Specular Amount texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
|
Specular Amount |
|
Gradient |
|
|
Specular Gradient |
Specular Fresnel-- When the Input Parameter is set to 'Specular Fresnel', the gradient will key off of any Specular Fresnel texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
|
Specular Fresnel |
|
Gradient |
|
|
Spec. Fres. Gradient |
Subsurface Amount-- When the Input Parameter is set to 'Subsurface Amount', the gradient will key off of any Subsurface Amount texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
|
Subsurface Amount |
|
Gradient |
|
|
Subsurface Gradient |
Transparent Amount-- When the Input Parameter is set to 'Transparent Amount', the gradient will key off of any Transparent Amount texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
|
Transparent Amount |
|
Gradient |
|
|
Transparent Gradient |
Input Parameter - Custom Material
Cel Edge Width-- When the Input Parameter is set to 'Cel Edge Width', as related to a Cel Edge Material, the gradient will key off of any Cel Edge Width texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Halftone Edge Width-- When the Input Parameter is set to 'Halftone Edge Width', as related to a Halftone Material, the gradient will key off of any Halftone Edge Width texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Halftone Tiles-- When the Input Parameter is set to 'Halftone Tiles', as related to a Halftone Material, the gradient will key off of any Halftone Tiles texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Skin Epidermis Diffuse Amount-- When the Input Parameter is set to 'Skin Epidermis Diffuse Amount', as related to a Skin Material, the gradient will key off of any Skin Epidermis Diffuse Amount texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Input Parameter - Fur
Fur Bump-- When the Input Parameter is set to 'Fur Bump', as related to a Fur Material, the gradient will key off of any Fur Bump texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Fur Clump Density-- When the Input Parameter is set to 'Fur Clump Density', as related to a Fur Material, the gradient will key off of any Clump Density texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Fur Clumps-- When the Input Parameter is set to 'Fur Clumps', as related to a Fur Material, the gradient will key off of any Fur Clumps texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Fur Curls-- When the Input Parameter is set to 'Fur Curls', as related to a Fur Material, the gradient will key off of any Fur Curls texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Fur Density-- When the Input Parameter is set to 'Fur Density', as related to a Fur Material, the gradient will key off of any Fur Density texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Fur Flex-- When the Input Parameter is set to 'Fur Flex', as related to a Fur Material, the gradient will key off of any Fur Flex texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Fur Growth Jitter-- When the Input Parameter is set to 'Fur Growth Jitter', as related to a Fur Material, the gradient will key off of any Growth Jitter texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Fur Length-- When the Input Parameter is set to 'Fur Length', as related to a Fur Material, the gradient will key off of any Fur Length texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Fur Parametric Length-- When the Input Parameter is set to 'Fur Parametric Length', as related to a Fur Material, the gradient will apply its colors/values along the length of individual fur fibers, 0% at the root, to 100% at the tip.
|
Gradient |
|
Fur Length |
|
Fur Root Bend-- When the Input Parameter is set to 'Fur Root Bend', as related to a Fur Material, the gradient will key off of any Root Bend texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Fur Root Frizz-- When the Input Parameter is set to 'Fur Root Frizz', as related to a Fur Material, the gradient will key off of any Root Frizz texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Fur Root Kink-- When the Input Parameter is set to 'Fur Root Kink', as related to a Fur Material, the gradient will key off of any Root Kink texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Fur Stray Hairs-- When the Input Parameter is set to 'Fur Stray Hairs', as related to a Fur Material, the gradient will key off of any Stray Hairs texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Fur Tip Frizz-- When the Input Parameter is set to 'Fur Tip Frizz', as related to a Fur Material, the gradient will key off of any Tip Frizz texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Fur Tip Kink-- When the Input Parameter is set to 'Fur Tip Kink', as related to a Fur Material, the gradient will key off of any Tip Kink texture layer present on the surface. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Input Parameter - Particle Effects
Particle Age-- When the Input Parameter is set to 'Particle Age', the gradient will key off Particle Age values present in an imported RealFlow particle animation providing additional controls over the animation of Blob, Sprite and Volume items.
Particle ID-- When Fur fibers and Surface Generator replicas are created, each is assigned a random Particle ID value between 0 and 1. When a Gradient is applied with the Particle ID input parameter, each fiber or replica will pull a value from the gradient based on that randomly generated ID offering users the ability to create controlled randomness. Now generating 'salt and pepper' fibers for a Fur Material is as easy as pie.
|
Gradient |
|
Replicator Particle ID |
|
|
Fur Particle ID |
Input Parameter - Shader Control
Driver A, B, C, D-- The 'Driver' settings will read any Texture item or combination thereof, whose 'Effect' is set to the same Driver letter (A,B, C or D). This allows users to have texture layers that can drive Gradients very easily. It also allows users the ability to remap the tones of a texture layers by using the gradient. Users should note that when using colored bitmap textures to drive the gradient, the brightness, or luminosity of the image will be the actual driving property. Users should also note that the gradient needs to be above the driving texture in the shader tree and that the letter value of the texture items 'Effect' needs to match the gradients 'Input Parameter' value (for example, both would need to be set to "Driver A' for it to work).
Image Map Driver |
|
Procedural Driver |
|
Gradient |
|
Image Map Grad. result |
|
Procedural Grad. result |
Group Mask-- When the Gradient layer items 'Input Parameter' is set to 'Group Mask' and the 'Effect' is set to the same, a gradient can modulate any texture layers themselves set as 'Group Mask (within the same group, of course). When the 'Effect' is set to anything else, the Gradient is driven by the Group Mask items, much like the Driver input parameter, overriding the effect of the mask on the group.
Base Group Mask |
|
Stepped Gradient |
|
Modulated Mask |
Layer Mask-- The 'Layer Mask' will work identically to the 'Group Mask input parameter, but where a Group Mask affects an entire group, a layer mask only affects a single layer. Setting the Gradient layers 'Effect' to 'Layer Mask', the gradient will modulate the texture layer directly below when set as 'Layer Mask'. When Gradients 'Effect' is set to anything else, the Gradient is driven by the Layer Mask items, much like the Driver input parameter, overriding the effect of the mask.
Base Layer Mask |
|
Stepped Gradient |
|
Modulated Mask |
Input Parameter - Special Effects
Stencil-- When the Input Parameter is set to 'Stencil', the gradient will key off of any Texture layers with their effect designated as Stencil. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Input Parameter - Surface Particle Generation
Surface Particle Density-- When the Input Parameter is set to 'Surface Particle Density', the gradient will key off of the Surface Particle Density texture layer present on the surface. Keep in mind the gradient maps across multitudes values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Surface Particle Size-- When the Input Parameter is set to 'Surface Particle Size', the gradient will key off of the Surface Particle Size texture layer present on the surface. Keep in mind the gradient maps across values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Input Parameter - Volumetric Effects
Volumetric Absorption Amount-- When the Input Parameter is set to 'Volumetric Absorption Amount', as related to a Volume Item layer, the gradient will key off of any Volumetric Absorption Amount texture layer present. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Volumetric Density-- When the Input Parameter is set to 'Volumetric Density', as related to a Volume Item layer, the gradient will key off of any Volumetric Density texture layer present. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Volumetric Level-- When the Input Parameter is set to 'Volumetric Level', as related to a Volume Item layer, the gradient will key off of any Volumetric Level texture layer present. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Volumetric Scattering Amount-- When the Input Parameter is set to 'Volumetric Scattering Amount', as related to a Volume Item layer, the gradient will key off of any Volumetric Scattering Amount texture layer present. Keep in mind the gradient maps across multitudes of values, such as those of a procedural texture layer, so if you have only a single continuous value, the Gradient will only register the corresponding single gradient color/value.
Edit Gradient: Check this box to open the gradient editor. This is where the actual gradient is created (see below).
Gradient Editor
The Gradient Editor is where users define the actual Gradient values. Though visually and functionally similar to the Graph Editor, the Gradient Editor assigns values over a range instead of over time as the Graph Editor does. Users will typically only be concerned with the R,G & B color, Alpha and Value channels. Modifying other attributes reverts the bar to a timeline where values are modified over time.
The window itself is divided into several sections.
Across the top are the numeric input text fields followed by key controllers. These allow users to apply specific values to a key as well as control the slope of incoming and outgoing curve handles. The left side of the window displays the channels available for editing. modo will generally select the appropriate channel based on the layers 'Effect' setting, but user can select 'Value' or 'RGB Colors' based on the layers intended use. The center window is where users define the keys and modify their positions. New keys are added by MMB+clicking in the graph area at the position where the key should be created. Once set, users can modify the key LMB+clicking in the color palette on the right side. Positions of keys can be modified interactively by simply clicking on the individual handle bases (the white dots along the curves) and dragging them around in the viewport. Key positions can also be modified by dragging the handles that appear in the gradient bar below the graph area.
Channels--
From within the channel section, users can select the value they wish to modulate. For diffuse color this would be the 'Color R,G and B channels, for specular amount, this would be the 'Value' channel. Once selected, a line representing the value appears in the graphing window.
Setting Keys--
Keys can be added to the currently selected curve(s) by MMB+clicking either on the curve itself or anywhere on the graph area background.
Setting Colors for Keys--
The color of selected keys can be set or adjusted by selecting the color key and either LMB+clicking and dragging on the Color Picker viewport or from the RMB context menu. Selecting 'Key Color' from this menu will open the Color Picker from which a color may be chosen. In both cases additional keys may be created on associated curves at the key Input value.
Deleting Keys--
Keys can be deleted from curves in two ways, to delete only the currently selected keys press the 'Delete' key. To delete the currently selected keys and keys at the same Input value on associated curves select 'Delete Key' from the RMB context menu.
Selection--
LMB - Selects a key under the cursor, holding the Shift key while selecting adds to the selection, and holding the Control key removes a key from the selection set. Clicking on the background deselects all keys.
LMB & Drag on the background starts box selection, drag out a box to enclose the keys you want to select and release the mouse button. All keys within the box will become selected, any outside the box will be deselected. Holding down the Shift key adds the keys within the box to the selection while the Control key removes them.
LMB click on a curve in the background (dimmed) will select the curve. Curves can be added to the selection by holding down the Shift key and clicking on a curve and can be removed from the selection by using the Control key.
Curves may also be selected from the menu at the top left of the viewport, this menu lists all the curves associated with the currently selected Gradient item(s).
Editing--
LMB & Drag on a key selects the key if it's not already selected and allows quick editing of both Input & Output values at the same time. If there are several keys already selected and you click drag on one of them then all the selected keys will be modified.
MMB & Drag on a key works in a similar way except that editing is constrained to the Output value. Similarly RMB & Drag constrains the edits just to the Input Parameter value.
MMB & Drag vertically on the background adjusts the Output value of all selected keys.
RMB & Drag horizontally on the background adjusts the Input value of all selected keys.
Control-MMB & Drag on the background provides constrained editing of Input & Output values for selected keys based on the initial direction of movement.
LMB Double click on a key selects all the keys on the curve.
Context Menu--
The Gradient Editor context menu is accessed by RMB click & release. If the cursor is over an un-selected key when the menu is opened the key will be added to the selection. Operations performed from the context menu will affect all the currently selected keys.
Navigation--
Panning & Zooming behavior in the Gradient Editor is similar to the 3D viewports with a few additions:
Alt-MMB Drag adjusts the start value of the Input (horizontal) range displayed in the editor, while Alt-RMB Drag adjusts the end value of the Input Range.
Alt-Shift-MMB zooms the Output Range displayed in the editor, while Alt-Shift-RMB zooms the Input Range. In both cases the zoom is centered on the initial cursor location.
Alt-Control-RMB provides box zooming.
Mouse Wheel - Zooms in and out around the cursor location.
Top