Copyright (c) 2015, Jens Kafitz & All Rights Reserved.

 RELEASE DATE: June 11, 2015

 REQUIRES: Mari 2.6v3 or later



A new icon was added to the 'Lighting' Toolbar (Default Hotkey: Ctrl + Space)

When pressed the Mari Viewport will be paused. This allows for operations such as Layer-reordering to be done at

significantly increased speed without having to wait for a viewport update each time.


BRDF Shader compatible with Unreal Engine 4.

This is an extended version of the Unreal Shader that was included in MARI Indie 2.6v5.

Additional features include:

    • Warnings when painting illegal values that would break physically based shading
    • Sliders for Values (will be overwritten when corresponding slot is mapped)
    • Emissive Color
    • Flat+Basic Lighting Modes will return BaseColor instead of black when metallic is 1


A new node was added, that will fill the current selection (object, patch or face selections) with the color specified.

While filling patches was always possible in Mari,this node makes it possible for the first time to fill a face selection as well.

The node needs to be converted to a paintable layer after use since it will update the selection continually based on the current.

Seams between UV Shells in Face Selection ?

If after running 'Convert to Paintable' on your Selection Fill

you are seeing faint seams between UV Shells, run a Patches/Bleed Patch Edges

on your layer. The seams are caused by lower level mipmaps when zoomed out of your model.


Adjustment Layer to change the color temperature in familiar way using Kelvin values

Remap Saturation and Value along a Curve (each)

Similar to the 'Polysurface Curvature' Node this node will run an edge/curvature detection, however evaluating layers

below this adjustment layer such as a tangent space normal map. Due to limitations, the result should be baked into a

paintable layer and get a gaussian blur applied.



    • Various Extension Pack Tools have been updated to turn off the viewport while they are running.

This can speed up performance up to 50% on operations that include multiple layers or channels.

While the viewport is paused a new icon will appear in the lower right hand corner of your Mari

window indicating that refresh has been paused. 

You can manually resume it by pressing the new Pause Viewport Update Button


The Channel Layer System has been completely rewritten:

    • Channel Layer Selection has a new UI, with alphabetical channel sorting and channel filtering options

    • "Channel Layer" + "Channel Layer Mask" now works with layeredShaders

    • Channel Layer UI no longer shows the internal channels generated by layeredShaders

    • Multi Selections of Channel Layers are now possible: 

For each selected channel in the Channel Layer UI one channel layer will be added to your layerstack

    • "Channel Layer Mask (grouped)" will now work with multiple selected layers.

Selected layers will be grouped together under a single group with the selected channel layer(s) added to the group node

as a mask stack.

    • "Channel Layer Mask" will now work with multiple selected layer in your stack, adding one maskstack per Layer.

    • "Channel Layer Mask" will now try to anticipate your intentions via added logic to make masking as easy as possible:

      • If the selected layer does not contain a mask or maskstack and only one channel layer is added a maskstack is created and the channel layer is added to the maskstack

      • If the selected layer does not contain a mask or maskstack and multiple channel layers are selected the first added channel layer in the mask stack will be set to Blendmode 'Normal', subsequent ones to Blendmode 'Screen'

      • If the selected layer does contain a mask or maskstack, channel layers will be added to the existing mask/maskstack.

      • If the selected layer does contain a mask or maskstack and only one channel layer is added, it will be set to Blendmode 'Multiply'. If 'Invert' was on during Channel Layer creation, the channel layer and invert adjustment will be grouped to prevent existing maskdata from being inverted.

      • If the selected layer does contain a mask or maskstack  and multiple channel layers are added, they will be grouped first with the group's Blendmode set to 'Multiply'. ChannelLayers will then be added to the Group with the first one at Blendmode 'Normal', subsequent ones at Blendmode 'Screen'.

    • "Convert to Paintable" can now be used on Channel Layers.

  • Mask from Selection

    • 'Mask from Selection' now works with layeredShaders

    • 'Mask from Selection' now works with multiple layer selection, adding one mask per layer

    • 'Mask from Selection' now respects existing masks or mask stacks on creation by converting simple masks into a mask stack

 and adding the channel mask or in case of existing mask stacks adding to it.

The logic behind 'Toggle Unselected Visibility' and 'Toggle Unselected Lock' has been reworked to only affect layers+groups

at the same hierarchical depth in your stack:

    • selecting a group or a layer outside of a group and executing 'toggle unselected visibility' or 'toggle unselected lock'

will toggle only unselected layers and groups at the same hierarchy depth.

    • selecting a layer or group within a group and executing 'toggle unselected visibility' or 'toggle unselected lock' 

will only toggle unselected layers & groups in the same group.

This new logic is at the moment experimental and may change in the future depending how it feels in day-to-day work.


The Export and DuplicateFlatten UIs have been extended for better user experience:

    • Only channels from the current object will be displayed by default now. A new checkbox 'List all Objects' was added to return 

to the previous behavior.The current object's channels will always be displayed on top of the list.

    • The currently active channel is now pre-selected in the dialog

    • Objects + Channels are now sorted alphabetically to be in line with Mari's Object and Channels Palettes.

    • Mari internal Channels created by layeredShader stacks will no longer appear in the list


UI Changes to the "setRange" Node were made to improve user speed:

    • The OldMin/OldMax and NewMin/NewMax Options have been converted from the previous range-locked sliders to 

text boxes to allow for easy input of values below 0.0 and over 1.0.

    • The previous behavior of being able to control values per color channel have been removed and

replaced with per channel check boxes.

    • setRange is no longer clamped by default (can be clamped again via checkbox under 'Extra Attributes')

    • Illegal Value Warning now differentiates its color warning between values that are above the upper limit 

and ones that are below the lower limit. This is helpful for 'normalizing' channels such as displacement to a 0-1 range

using the 'Set Range' Node.


    • A new option 'Suppress Alpha' was added to optionally ignore the Alpha/Transparency of the loaded image

    • Overall performance of the Node was increased significantly. 

    • By default all axis are now enabled making the node the best and faster alternative to a triplanar



    • All Extension Pack Tools will now work correctly when executed from within pinned, floating or docked

Layerstack Palettes where the corresponding channel is not selected in the Channel Palette but the

layerstack is accessible in the interface  (something almost no default Mari tool can do)


    • 'Patch to Image Manager' would not remove temporary layers when invalid UDIM Numbers were found

 (for example when a plane is touching the UV borders)

    • 'Patch to Image Manager' now has added logic to deal with Channel Layers contained in the Channels

in has to bake to the Image Manager. Previous Versions would create unwanted Channel Duplicates

in the Channel List.


    • 'Clone & Merge' previously did not work at all when executed in mask stacks

    • 'Clone & Merge' now has added logic to prevent it from duplicating channels when executed on a selection that included channel layers. 

This includes cases where channel layers are used in (possibly nested) maskStacks & Adjustment Stacks.

    • Toggling Layer Visibility or Lock for multiple selections previously did not work in mask & adjustment stacks

    • 'Toggle Unselected Visibility' previously ignored groups completely. 


New Features

The following functions were added to the openGL Function Overview:

    • vec3 Kelvin2Rgb(float Kelvin);
    • float Luminance(vec3 color);
    • vec4 sRgb2Linear(vec4 Color);
    • vec3 sRgb2Linear(vec3 Color);
    • vec4 linear2sRgb(vec4 Color);
    • vec3 linear2sRgb(vec3 Color);



  • Jens Kafitz -


  • Yasin Hasanian