Mask from Curvature by Jens Kafitz |
- Where to find it: (This Node is available in the Nodegraph only)
- NodeGraph / Right Mouse Click / Add Nodes / Layer / Extension Pack /
The Mask from Curvature Node is a image processing node designed to give you edge wear effects based on a baked curvature map.
It works by blending maps together differently much like you could do in a layerstack or nodegraph with some advanced options.
1) Bake a Curvature Map for your model.
This can be done by using Mari's Modo Bake or externally by tools such as XNormal, Mightybake (has UDIM Support), Substance Designer etc.
The ideal Curvature map uses a Grey (50% linear) midpoint with Concave/Convex surfaces represented in Black and White however different Midpoints
are supported if you do not have access to a map with Concave/Convex separation.
Bring in the curvature map into Mari, importing it into a Paintable Node or using an Image Node and converting to to a Paintable Node via the Nodegraph/Graph Layer.
LINEAR DATA Curvature Maps should always be evaluated in 'Linear' Colorspace. When loading in a Map into Mari set the Colorspace field in the File Loader to 'Linear'. This is very important since many processes such as Contrasting,Blendmodes etc. use a default midpoint of 0.5 linear.When loading in a curvature map as sRGB its colormanaged mitpoint is 0.5, however the internal data is converted to a value of 0.21. If you incorrectly loaded a curvature map as sRGB add a 'sRGB to Linear' Adjustment with the 'Invert' Option ticked or apply it directly via Menu Filters/sRGB to Linear |
- Curvature
Attach your original Curvature Map.
- Fine / Soft / Medium Curvature
Attach differently blurred versions of your original sharp curvature map.
The range of blur should be thought of as your 'fine' to 'middle' edge detail range
- Big / Large / Huge Curvature
Attach differently blurred versions of your original sharp curvature map.
The range of blur should be thought of as your your medium to large edge detail range extending
all the way across a surface.
- Jitter Fine
Outputs of Nodes attached to the Jitter Fine will be multiplied against the Sharp / Fine / Soft / Medium Sliders
in the Node by default.
Sharp = JitterFine.red * Sharp Slider
Fine = JitterFine.red * Fine Slider
Soft = JitterFine.green* Soft Slider
Medium = JitterFine.blue * Medium Slider
- Jitter Coarse
Outputs of Nodes attached to the Jitter Coarse will be multiplied against the Big / Large / Huge Sliders
in the Node by default.
Big = JitterCoarse.red * Big Slider
Large = JitterCoarse.green * Large Slider
Huge = JitterCoarse.blue * Huge Slider
MAIN TAB
- Mode
Determines how the attached Curvature Maps are processed
Raw gives a raw view of all your Curvature Maps layered together using a default, non-compressing Blendmode (Overlay).
The Blendmode used can be modified under the Advanced Options via the Raw Blending Setting.
- Edges
Edges layers your Maps according to the Blendmodes under Curvature Blending and the opacity set in the
Curvature Influence Sliders. Processing of Maps is skewed towards isolating values over 0.5 (edges).
- Cavities
Cavities layers your Maps according to the Blendmodes under Curvature Blending and the opacity set in the
Curvature Influence Sliders. Processing of Maps is skewed towards isolating values below 0.5 (cavities).
- Dual
Dual layers your Maps according to the Blendmodes under Curvature Blending and the opacity set in the
Curvature Influence Sliders. Processing is done in both 'Edge' and 'Cavities' Mode, then the result is layered together
according to a blendmode. The Blendmode used can be modified under the Advanced Options Cavity/Edge Blending (Dual) Setting
- Sharp / Fine / Soft / Medium
Determines the percentage each differently blurred Curvature Map should contribute to the Fine-Medium Edge Detail.
The Sliders are multiplied by the Jitter Fine Handle in the Nodegraph if something is attached
- Big / Large / Huge
Determines the percentage each differently blurred Curvature Map should contribute to the Large Edge Detail.
The Sliders are multiplied by the Jitter Coarse Handle in the Nodegraph if something is attached
- Cavity Intensity
Increases the intensity of the calculated Cavity
- Edge Intensity
Increases the intensity of the calculated edges
- Contrast
Adjusts the Contrast of the calculated result
- Bias
Adjusts the Bias of the calculated result
- Gain
Adjusts the Gain of the calculated result
- Invert Result
Inverts the computed result (1.0 - Current)
ADVANCED OPTIONS TAB
- Offset Midpoint
Allows you to offset the assumed midpoint of your curvature maps.
By default the node assumed the natural midpoint of your curvature map is 0.5.
By tweaking this value you can add or subtract a value from this 0.5 midpoint
It is recommended to leave this value at default 0.0 by default and only use it for later tweaking.
- Blend Sharp
Determines the Blendmode used to combine the unblurred (sharp) Curvature Map over the Neutral Value (usually 0.5)
The Opacity used to blend is determine by the Slider under Curvature Influence
- Blend Fine / Soft / Medium / Big / Large / Huge
Determines the Blendmode used to combine each blurred Curvature Map over the combined result of all blending operations
before it. The Opacity used to blend is determined by the Sliders under Curvature Influence
The Advanced Options: Input Remap allows you to contrast the curvature maps you are feeding in before any
processing is done with them:
- Remap Curvature(s)
Allows the individual tweaking of contrast and levels of the supplied Curvatures on the different Curvature Ports.
The curve is applied before any processing inside the node
The Advanced Options: Blending allows you to modify some node internal blending defaults for the edge modes
raw, cavity and dual.
- Raw Mode Curvature Blending
The Blendmode used for all Map Blending when the Raw Mode is chosen
- Edge Mode Cavity Blending
The Blendmode used to combine Cavities and Edges Blending when the Edge Mode is chosen
- Edge Mode Cavity Opacity
The Opacity of the Cavities when the Edge Mode is chosen
- Edge Mode Value Addition
A value that can be added or subtracted from the Edge Pass when the Edge Mode is chosen.
Usually this should stay at 0.
- Cavity Mode Value Addition
A value that can be added or subtracted from the Cavity Pass when the Cavities Mode is chosen.
Usually this should stay at 0.
- Dual Mode Cavity Blending
When the Dual is chosen, this determines the Blendmode used, to combine the Cavities Pass with the Edge Pas
- Dual Mode Cavity Opacity
When the Dual is chosen, this determines the Opacity used, to combine the Cavities Pass with the Edge Pas
The Advanced Options: Jitter allows you to modify the node defaults for how any Input connections attached to the
Jitter Fine and Jitter Coarse Handles are mapped to each Curvature Slot
You can assign any Color Channel (R, G or B) of the Jitter Connection to any Curvature slot.
The Jitter is usually multiplied against the Curvature Influence Sliders.
- Sharp x, Fine x, Soft x, Medium x, Big x, Large x, Huge x
|
Nothing will be multiplied against the specified Influence Slider |
|
The RED Channel of the Node(s) feeding into the Jitter Fine Handle will be multiplied with the specified Influence Slider |
|
The GREEN Channel of the Node(s) feeding into the Jitter Fine Handle will be multiplied with the specified Influence Slider |
|
The BLUE Channel of the Node(s) feeding into the Jitter Fine Handle will be multiplied with the specified Influence Slider |
|
The RED Channel of the Node(s) feeding into the Jitter Fine Handle will be multiplied with the Curvature Map of the specified Slot, then multiplied against the specified Influence Slider For example: (JitterFine.red * CurvatureMapSharp) * CurvatureSharpInfluenceSlider |
|
The GREEN Channel of the Node(s) feeding into the Jitter Fine Handle will be multiplied with the Curvature Map of the specified Slot, then multiplied against the specified Influence Slider For example: (JitterFine.green * CurvatureMapSharp) * CurvatureSharpInfluenceSlider |
|
The BLUE Channel of the Node(s) feeding into the Jitter Fine Handle will be multiplied with the Curvature Map of the specified Slot, then multiplied against the specified Influence Slider For example: (JitterFine.blue * CurvatureSharp) * CurvatureSharpInfluenceSlider |
|
The RED Channel of the Node(s) feeding into the Jitter Fine Handle will be multiplied with the inverted Curvature Map of the specified Slot, then multiplied against the specified Influence Slider For example: ( (1.0 - CurvatureMapSharp) * JitterFine.red ) * CurvatureSharpInfluenceSlider |
|
The GREEN Channel of the Node(s) feeding into the Jitter Fine Handle will be multiplied with the inverted Curvature Map of the specified Slot, then multiplied against the specified Influence Slider For example: ( (1.0 - CurvatureMapSharp) * JitterFine.green ) * CurvatureSharpInfluenceSlider |
|
The BLUE Channel of the Node(s) feeding into the Jitter Fine Handle will be multiplied with the inverted Curvature Map of the specified Slot, then multiplied against the specified Influence Slider For example: ( (1.0 - CurvatureMapSharp) * JitterFine.blue ) * CurvatureSharpInfluenceSlider |
|
The RED Channel of the Node(s) feeding into the Jitter Coarse Handle will be multiplied with the specified Influence Slider |
|
The GREEN Channel of the Node(s) feeding into the Jitter Coarse Handle will be multiplied with the specified Influence Slider |
|
The BLUE Channel of the Node(s) feeding into the Jitter Coarse Handle will be multiplied with the specified Influence Slider |
|
The RED Channel of the Node(s) feeding into the Jitter Coarse Handle will be multiplied with the Curvature Map of the specified Slot, then multiplied against the specified Influence Slider For example: (JitterCoarse.red * CurvatureMapSharp) * CurvatureSharpInfluenceSlider |
|
The GREEN Channel of the Node(s) feeding into the Jitter Coarse Handle will be multiplied with the Curvature Map of the specified Slot, then multiplied against the specified Influence Slider For example: (JitterCoarse.green * CurvatureMapSharp) * CurvatureSharpInfluenceSlider |
|
The BLUE Channel of the Node(s) feeding into the Jitter Coarse Handle will be multiplied with the Curvature Map of the specified Slot, then multiplied against the specified Influence Slider For example: (JitterCoarse.blue * CurvatureMapSharp) * CurvatureSharpInfluenceSlider |
|
The RED Channel of the Node(s) feeding into the Jitter Coarse Handle will be multiplied with the inverted Curvature Map of the specified Slot, then multiplied against the specified Influence Slider For example: ( (1.0 - CurvatureMapSharp) * JitterCoarse.red ) * CurvatureSharpInfluenceSlider |
|
The GREEN Channel of the Node(s) feeding into the Jitter Coarse Handle will be multiplied with the inverted Curvature Map of the specified Slot, then multiplied against the specified Influence Slider For example: ( (1.0 - CurvatureMapSharp) * JitterCoarse.green ) * CurvatureSharpInfluenceSlider |
|
The BLUE Channel of the Node(s) feeding into the Jitter Coarse Handle will be multiplied with the inverted Curvature Map of the specified Slot, then multiplied against the specified Influence Slider For example: ( (1.0 - CurvatureMapSharp) * JitterCoarse.blue ) * CurvatureSharpInfluenceSlider |
- Attenuation
The Attenuation Value (usually set to 0.5)
- is subtracted from a Curvature Map before it is used in multiplication when one of the Attenuated Modes is selected from the Dropdown
- added to the Curvature Map when one of the Inverse Attenuated Modes is selected.
For example a sample of Attenuated Jitter Coarse RED selected in the Sharp Drowpdown results in the following Calculation:
( (CurvatureSharp - Attenuation) * JitterCoarse.red ) * CurvatureSharpInfluenceSlider
For example a sample of Inverse Attenuated Jitter Coarse RED selected in the Sharp Drowpdown results in the following Calculation:
( (1.0 - CurvatureSharp) + Attenuation) * JitterCoarse.red ) * CurvatureSharpInfluenceSlider
The Jitter Overrides allow you to globally override the Jitter Options defined under the Jitter Group
- Use Jitter Fine for All
Maps the Jittering for all Curvatures (Sharp,Fine,Medium,Big,Large,Huge) to use the Jitter Fine supplied via the Nodegraph Port
- Use Jitter Coarse for All
Maps the Jittering for all Curvatures (Sharp,Fine,Medium,Big,Large,Huge) to use the Jitter Coarse supplied via the Nodegraph Port