Released by Jens Kafitz, 2015 - Extension Pack
RELEASE DATE: December 8th, 2015
REQUIRES: Mari 3.0v1 or higher *(Indie/Non-Commercial not supported)
= Nodegraph Only = Demo Video available
INSTALLATION & DEPLOYMENT |
Extension Pack 5 has a new file and folder structure within your mari script directory to
make it a compact. easy to update and deploy package. Please refer to the installation section of the
online help for updated installation instructions or the install troubleshooting section if you have problems
- Version Check
You can now check for newer Extension Pack Versions from the Mari Help Menu.
NODEGRAPH |
All Extension Pack Layer Nodes have been reworked for best use in the Nodegraph.
Nodes now have their most useful parameters exposed as connections in the Nodegraph to allow
node-driven parameters (Octaves driven by another Noise etc.).
While Node connections are unmapped, Node Sliders are used. While Node Handles are mapped, Node Sliders are ignored.
Sample of a Node with exposed connections in the Nodegraph
ADJUSTMENT NODES |
A node similar to a Contrast Node but mimicking behavior of Substance Designers 'Histogram Scan' Node.
Two new nodes were added to convert values between RGB + HSV (Hue/Saturation/Value).
Two new nodes were added to convert values between RGB + HSL (Hue/Saturation/Lightness).
BASIC NODES |
A simple node generating a default tangent space normal color. Normal Map Channels should always be set to
colorspace 'Linear' or 'Raw Data' to ensure correct results.
A simple node letting you set a float value. Different Input Fields (Text field, sliders with different ranges etc.) for different requirements are available
MANIFOLD NODES |
NODEGRAPH ONLY Nodes of this category can only be created in the Nodegraph |
A manifold is a node to transform coordinates such as Position + Normal resulting in a change of scale,
translation or rotation.
All Extension Pack Procedurals now have a 'Manifold' connection in the Nodegraph to attach this to.
Standard Mari Nodes if supported have a 'Position' connection that is compatible.
Many Extension Pack Procedurals already have Scale/Translation/Rotation options built in but this node can be
used as a central control node to modify multiple nodes simultaneously.
Manifold 3D by default will use the Object Position as base coordinates unless you specify a different one by
mapping its 'Coordinates' Connection.
Scale, Rotation and Offset of Coordinates are exposed as parameters in the Nodegraph, allowing you to
optionally drive them by another Node if needed
Manifold UV is used to change scale, offset and rotation of 2D Coordinates (UV Coordinates).
All Extension Pack Procedurals now have a 'Manifold' connection in the Nodegraph to attach this to.
Standard Mari Nodes if supported have a 'UV' connection that is compatible although if available a
'Position' Input works as well.
When attaching a Manifold UV node to another node, the target node will be evaluated in UV Space instead of
its default (3D) Space. The behavior is the same as checking the 'UV Space' Checkbox in a Procedural
but the Manifold UV Node can be used to modify multiple Nodes at once.
'Manifold UV' by default uses your objects UV Coordinates.
Scale, Rotation and Offset of Coordinates are exposed as parameters in the Nodegraph, allowing you to
optionally drive them by another Node if needed
ENVIRONMENT NODES |
The 'Image' Node will allow you to load an image with similar options as you have on the default Mari 'Tiled' Node.
However this node does not contain any UV transformation options (repeat, offset).
By attaching a 'Manifold UV' Node to the 'Image' Node you get the same options as on a Tiled node but with the advantage
of being able to use different tiling images in different channels while having only a single set of controls for repeat, offset etc.
Sample of 3 different Image Nodes with a shared Transformation Node (Manifold UV)
ENVIRONMENT NODES |
The Object Space Radial Gradient will create a 3-dimensional (spherical) radial gradient
The Object Space Linear Gradient (centered) will create a linear gradient on your object.
It is a modified version of Mari's default Object Space Linear Gradient Node, that was reworked
to make it more easily control-able and provide additional options for gradient generation.
LAYERING NODES |
NODEGRAPH ONLY Nodes of this category can only be created in the Nodegraph |
A Node to add detail to mask edges by isolating the soft transition areas and adding the effects from another
node into the transition.
The Input Switch Node will switch between 4 different Input Connections based on a user provided value
Very simple mix node to linear interpolate two colors by a mask.
This is similar behavior to the Mari 'Merge' node but lighter and faster in performance since the 'Mix' Node
does not contain blend modes or advanced blendmodes.
For convenience a color A and color B can be set on the node. They will be ignored if the corresponding connections
are mapped in the nodegraph.
The Nodes Mix Slider will always be evaluated regardless of the Mix Connection being mapped
(in which case it's a multiplier on the nodes 'Mix' Connection)
MATERIAL REGIONS |
NODEGRAPH ONLY Nodes of this category can only be created in the Nodegraph |
New nodes were added as part of the implementation of Material Regions.
- Region Base Value
- Region
- Region Merge
- Region Output
Different Material Region Presets for different shader workflows
(Roughness/Reflectance, Metallness/Roughness, Specular/Glossiness) are available.
Material Regions are a system to layer Materials on top of each other (Dust over Rust over Metal etc.)
while providing a logical grouping in the Nodegraph.
Other than a Layered Shader a Material Region does not compute any shading. It is layering the effects
of each channel (diffuse, spec, bump etc.) from the current region over the effects of each channel from the previous region.
In the end a material region chain outputs each combined channel into a channel for export.
Material Regions have full support for MaterialID Channels as Region masks.
Material Regions are only available in the advanced Nodegraph (Preferences/Nodegraph/Enable Advanced Nodegraph)
Sample of a basic material regions setup involving a region_base_value node, a material_region with a painted mask
and the final output to the target channels
Two new nodes were added to convert Channels from a Metal-Roughness workflow to a
Reflectance/Roughness or Specular/Glossiness workflow.
MISC NODES |
NODEGRAPH ONLY Nodes of this category can only be created in the Nodegraph |
The Bake Visible to Selected Paint Node is a special Node that allows you to repeatedly write the input
of the node into a selected paintable Node. This is different from Mari 3.0's default right mouse click
'Bake to Paint Node' since it does not require you to create a new Paintable Node each time.
MATH NODES |
NODEGRAPH ONLY Nodes of this category can only be created in the Nodegraph |
A variety of Math Nodes were added to allow more 'visual coding' of graphs:
FILE MENU |
'Project Paths' allows you to configure default paths (Texture Export & Import Locations,Camera Locations, Image Manager Folder default etc.)
and file templates for your project. Paths can be set relative to a project base path and automatic folder creation is supported.
Paths are saved with the project and restored on project load, so you only need to configure each project once and on the next
project open you will find it how you left it without the need to set the paths again with the tool.
SETTINGS HISTORY The last used settings (from whenever you last launched the 'Project Paths' Dialog) are preset on open to all fields but not applied to the project unless you choose to. This allows you to configure your paths relative to a changing base path and on a newly created project you then only need to set the base path instead of all individual paths each time. |
SELECTION MENU |
A new menu item was added to the Selection menu and the right-click viewport menu ('Visibility' submenu)
that allows you to isolate the visibility of your current selection.
Unselected parts of your model will be hidden. Once you toggle back, your original visibility states will be restored.
A default shortcut CTRL+1, identical to Mayas 'Isolate Select' has been set if available
but can be modified via the Shortcut Editor.
FACE & PATCH SELECTIONS ONLY Isolate Selection cannot be run to toggle visibility in 'object' mode at the moment |
SELECTION GROUPS PALETTE |
A new tool was added to the 'Selection Group' Palette that will allow you to easily create a materialID
channel from your choice of selection groups. All selection group types (object, patch, faces) are supported.
Currently there are two ways to utilize Material IDs in Mari
- create a 'Color to mask' Adjustment Layer and pick the ID Color
- use the Extension Pack Material Regions with their built in support for Material IDs
Optionally the tool allows you to create individual mask layers for each selection group instead of one
material ID layer.
LAYERS |
A bookmarking system for layer selections was implemented. Pinned Layers simplify the way of sharing
a layer, group or channel into a different channel or stack. Pinned Layers have two modes - Quick Pins & Collection Pin
Sample of different layers pinned to the layers menu for later access
Quick Pins can be used to quickly mark one or more layers for a sharing operation.
It works similar to a copy+paste operation but instead of pasting a duplicate of a layer,
it creates one or more shared layer(s) of the original selection at your target location.
The same layer(s) can be 'pasted' multiple times in different places.
A quick pin can be stored via the Option Layer/Pin/Save Quick Pin, then inserted into a layerstack
by using the Layer/Add Pinned Layer/Quick Pin option.
For convenience the default hotkeys CTRL+ALT+C and CTRL+ALT+V were set to save and insert a Quick Pin.
Collection Pins are useful if you need to repeatedly have access to the same layers for sharing.
While Quick Pins work like a clipboard, Collection Pins allow you to pin layers,groups or channels to the menu for
later access. Collection Pins can be added by using the Layer/Pin/Pin to Collection Option.
For each selected layer, group or channel layer, one Collection Pin will be added to the 'Layer/Add Pinned Layer' Menu.
Collection Pins are stored per project and will be restored on project loading.
Collection Pins require a unique name. You cannot add two layers with the same name as different collection pins.
Layer/Pin/Edit Collection Pins is used to manage your existing collection pins
CHANNELS |
As part of the implementation of 'Pinned Layers' options were added to the channel palette.
To save a channel as a Quick Pin or Collection Pin use the Channel/Pin/Save Quick Pin or
Channel/Pin/Pin to Collection Options.
The currently selected channel will be accessible for sharing as Channel Layer from the
Layers/Add Pinned Layers/ Menu
A new option 'Duplicate Channel' was added to the Channels Menu.
'Duplicate Channel' - other than Mari's default Copy/Paste way of duplicating Channels -
will create a true duplicate of the source channel.
- Channel Layers will be linked to original shared channel and channel duplication is avoided.
- Channel Internal sharing of layers from one point of its layerstack to another is kept without
referencing the original source channel.
- Channel external sharing of Layers (layers from 3rd channel shared into source channel)
is maintained and direct links to 3rd channel are restored in duplicated channel
- Mixed or combined Internal & External Sharing is maintained without referencing original
source channel
OBJECTS |
It is now possible to export your geometry from inside Mari to an OBJ File.
Export Object can export either subdivided or unsubdivided geometry if OpenSubd is applied.
When launched via the 'Object' Menu in the Main Window you are able to select what geometry to export.
When launched via the right mouse click menu in the object palette, the selected geometry will be exported.
A new submenu was added to the Object menu and right click object dropdown menu to toggle all objects
in your scene to their highest or lowest available subdivision levels.
Locked Objects are respected and are not affected.
A new submenu was added to the Object menu and right click object dropdown menu to toggle all visible
objects in your scene to their highest or lowest available subdivision levels.
Locked Objects are respected and are not affected.
TOOLBARS |
New options were added to the 'Tool Properties' Toolbar of the Transform Paint Tool:
- You can now switch your Paint Buffer Resolution from this toolbar using the 'Resolution' Dropdown
or the 'Halve' & 'Double' convenience buttons. This is the same as changing it in the 'Painting Palette'
- You can now toggle the Paint Buffer Clamping on/off from this toolbar. This is the same as changing it in the 'Painting Palette'
- You can now switch the Paint Buffer Bitdepth from this toolbar using the 'Depth' Dropdown.
This is the same as changing it in the 'Painting Palette'.
- A new feature was added to keep the Paint Buffer Bitdepth in sync with your current channel.
The Bitdepth will be dynamically switched whenever you switch channels with different bit depth.
This setting is saved across projects.
- New features were added to easily flip your Paint Buffer horizontally or vertically
MISC |
Under the Mari/Scripts Menu a new Submenu 'Project' was added. This contains useful tools to reduce
archive sizes and speed up your Mari by removing unnecessary data from the project
Remove all Snapshots will delete any snapshots for Channels or Layers in your project which
can reduce Project/Archive Sizes significantly. Other than using the same action from your
Channels / Snapshots Menu running this will clear your history (meaning you cannot undo it)
in order for Mari to be able to remove the snapshots from disc as well.
GarbageCollect is a Mari-internal tool that usually runs automatically while Mari is idle for a few minutes
but can be manually triggered here. Its purpose is to clear data that is no longer needed from your project cache
(deleted layers, channels etc.) Please note, this process will save your project & clear out its history.
You should always let this process run for a little since there is no visual process or completion indication.
USER INTERFACE |
Extension Pack Tools are now grouped under a 'Extension Pack' Group in the Hotkey Editor
with subgroups mimicking their position in the UI to make them easier to find.
Extension Pack Adjustment and Procedural Nodes are now located under an 'Extension Pack' Submenu
under each existing submenu ('Adjustments', 'Basic', 'Environment', 'Geometry' etc.)
Extension Pack Adjustment Layers are now categorized in subfolders (Color Correction, Utilities etc.)
to police the menu size
Extension Pack Procedurals in the MainWindow/Layers/ Menu no longer appear under a 'CustomProcedurals' Folder
but now appear in the same Folder Structure as in the Layers Palette.
Custom Object Normal Node has been renamed to Custom Surface Normal to be in line with Mari vocabulary.
Paintable Gabor Noise no longer appears under 'Adjustment Layers' and has been moved to Procedurals/Custom/Gabor/
CHANNELS PALETTE |
- 'Export Custom Channel Selection' now has the option to only export selected patches, allowing you to export
changed UDIMs for multiple Channels at once. Please note that 'Export Selected Patches' overrules
the 'Export only Modified Textures' Setting (if turned on) and will force export all selected patches, changed or not.
- 'Export Custom Channel Selection' can now export (flattened) Channels at half, one quarter or on eighth of the resolution
they are set to in your Mari Project
- 'Export Custom Channel Selection' can now post process exported Textures using any process that can be launched
from a command line. This can be used for example to launch Mipmapping processes for conversion to tx, tiled exr, map format etc.
- 'Export Custom Channel Selection' no longer flattens channels with only a single paintable layer (and no mask or adjustment),
speeding up the export time for those channels and matching default Mari Export behavior introduced in Mari 2.6v5
- 'Export Custom Channel Selection' now separates the File Path and the File Export Template in its
UI to avoid having to retype the template every time you change the path.
Path & Template fields support the usual MARI Variables such as $ENTITY,$CHANNEL etc.
If a defined subfolder in the path uses a $-Variable, folders will be auto-created without user interaction.
Otherwise a user prompt will appear offering to create any missing folders. Subfolders can be defined
in both path and file template field.
- 'Export Custom Channel Selection' will now remember your last settings for checkbox options and
Export File Template. An option was added to reset the Export File Template to Project Default if
it is different than the current one.
- 'Export Custom Channel Selection' now uses the default Operation System Dialog for Path Selections
instead of the limited MARI Default one
- The previous 'DISABLE SMALL TEXTURES' Checkbox is now a 'ENABLE SMALL TEXTURES' checkbox
to not have double negatives
- 'Export Custom Channel Selection' now differentiates if it is being launched from 'Export' or 'Export Flattened' Submenu.
If launched from 'Export Flattened' Submenu, 'Flattened' checkbox is enabled by default and the File Template defaults
to the template defined for flattened Textures. When launched from 'Export' submenu, 'Flattened' checkbox is off by default
and file Template defaults to template defined for non-flattened Textures.
- 'Export Custom Channel Selection' has been added to the canvas right mouse click menus
Duplicate & Flatten will no longer create channel duplicates of channelLayers (shared channels) if the
duplicate/flattened channel contained channel layers
OBJECTS |
- 'Export UV Mask' now uses a similar interface as 'Export Custom Channel Selection'
- 'Export UV Mask' now lets the user define the Export File Template.
Path & Template fields now support the usual MARI Variables such as $ENTITY,$CHANNEL etc.
If a defined subfolder in the path uses a $-Variable, folders will be auto-created without user interaction.
Otherwise a user prompt will appear offering to create any missing folders. Subfolders can be defined
in both path & file template field.
- custom File Template Entries are saved between sessions
- when launched via the 'Object' Menu you are able to select what geometry to export from.
When launched via the right mouse click menu in the object palette, the UV Masks from the selected
geometry will be exported.
PATCHES |
'Patch Bake to Image Manager' now use Mari 3s new OCIO color management when loading images into the
image manager. The colorspace to load images in is determined by the selected channel when executing the tool.
CAMERA |
- 'Unproject Channel/Layer to Image Manager' now uses Mari 3s new OCIO color management on projectors
and when loading images into the image manager.
The colorspace to unproject the image in is determined by the selected channel when executing the tool
- 'Unproject Channel/Layer to Image Manager' will now unproject images at 2x PaintBuffer Resolution or maximum 16k.
- 'Unproject Channel/Layer to Image Manager' will now set the scale of the Projector based on the X Dimension
of the Paintbuffer. Unprojected Images will always be square with a 1:1 Pixel Aspect Ratio.
- 'Unproject Channel/Layer to Image Manager' will now unproject at appropriate BitDepths based on
the selected channel/layer. 8bit Images are saved in PNG, 16bit/32bit in exr format.
- 'Unproject Channel/Layer to Image Manager' will now timestamp imported images and images will have
the layer / channel name they were unprojected from
LAYERS |
- Mask from Selection & Mask from Selection (inverted) removed
Layer/Add Layer Mask/Mask From Selection + Mask From Selection (inverted) have been removed from
Extension Pack since MARI 3 now ships natively with its own implementation.
PROCEDURAL NODES |
ATTENTION Some of the following modifications will change the look of existing procedurals when converting Projects that use the old ones. |
- General
- The 'Transform Scale' Settings (Scale X,Y,Z) on all procedural nodes have been refactored so that
larger numbers now mean larger scale. Previously procedurals would scale up in size the closer the
value got to 0.0. At default setting of 1.0 the result is identical as before.
- Clamping options have been added to various procedurals where they were missing.
Clamping is now performed on the result of the noise computation but before applying Color A / B.
This ensures that color mixing behaves reliably but it is still possible to set color values outside of 0-1 range.
- Various Slider ranges have been refactored to a 0-1 range to make it easier to map attributes in
the nodegraph with paintable nodes or other procedurals
'FBM+' now uses a different algorithm, giving more predictable results with less overall 'flowing' of features
across the surface when changing sliders
GEOMETRY NODES |
- 'Polysurface Curvature' now has a new 'Min Curvature' Attribute
- The 'Polysurface Curvature' Node now has an additional 'Normal Map Mix'.
When a Normal Map (for example a 'Normal Map' Channel) is attached to the connection in the Nodegraph
you are able to mix from a normal map into the final calculation of the curvature.
ENVIRONMENT NODES |
- Falloff Map removed
The 'Falloff Map' Node has been removed from Extension Pack since it no longer had any practical
applications
USER INTERFACE |
- Extension Pack additions to menus were not always deactivated/grayed out when no project was open
- User-set Hotkeys for Extension Pack Tools would not get restored properly after Mari was reopened
LIGHTING TOOLBAR |
- The icon for 'Pause Viewport Update' would not be found on MARI Configurations with multiple Script Paths
- It was possible for the Enabled/Disabled state of the Icon to fall out of sync with the state of the Viewport
when the Pause Viewport action was triggered via scripts or non-default hotkeys.
CHANNELS |
- 'Export Custom Channel Selection' caused an error in MARI 3.0 during Export and did not export anything
- Metadata added to Channels to determine what textures have changed between exports were visible to the user
in the Channel Info field by mistake
- 'Export Custom Channel Selection' when used with the 'Only Modified Textures' option previously would error
if the UDIM Count increased (for example by adding geometry versions) or if users mistakenly removed
the channel metadata used to determine changes in textures.
- 'Export Custom Channel Selection' when used with the 'Only Modified Textures' option previously would error
with certain nested mask stack configurations
- 'Export Custom Channel Selection' when used with the 'Only Modified Textures' option would not register changes
to a channel caused by a Channel Layer in the Layerstack.
- 'Create new Channel from custom Resolution' Item under Menu 'Scripts/Channel/Template' was launching the
wrong tool in Extension Pack 2.1
- 'Save Custom Channel Resolution' & 'Load Custom Channel Resolution' would crash Mari if used in Mari 3.0
LAYERS |
- 'Clone & Merge Layers' when executed on a selection containing a locked layer would duplicate the selection
in the stack but error when merging them.
'Clone & Merge Layers' will now unlock any locked layers after duplication so it can run correctly.
- 'Add Channel Mask' would crash Mari when used in Mari 3.0
- 'Add Channel Mask (grouped)' would error and stop working when used in Mari 3.0
- 'Convert to Paintable' when run on a Channel Layer that was within a shared group would error.
- 'Convert to Paintable' when run on a Channel Layer with a disabled adjustment stack would not set the
Adjustment Stack to disabled on the resulting paintable layer giving the impression that something had changed
after converting
IMAGE MANAGER |
- 'Image Manager'/'Export Selection' would error and not export anything when used in Mari 3.0
- 'Image Manager'/'Export Selection' will now default to the Project Path for Reference Images
defined by the variable mari.resources.DEFAULT_IMAGE.
You can change default folders by using the new 'Project Paths' Option found under the File Menu
- Canceling an export will now more reliably abort exports since the export is now checking for a user
executed cancel after each image finished exporting.
Extension Pack Tool Actions have been moved out of /Mari/Scripts/ and into /Mari/Extension Pack/.
If you are using any Extension Pack Actions in your own scripts you need to update to the new path.
RegisterCustomShaders.py now uses the new mari.gl_render.registerCustomNodeFromXMLFile
to register nodes inside of Mari.
As a result categories in Adjustment & Procedural Node XML Files <Category> now need to be specified explicitly
including their initial path (/Filters/, '/Procedurals/'). The path is no longer automatically derived from the <tags>
attribute such as <tags>_adjustment </tags>
As a result especially Adjustment Layers need to be placed manually under adjustments by specifying the path
'/Filter/' in the category section of the xml file <category> /Filter/MyAdjustment </category>
This allows for placement of nodes that require an _adjustment tag to work in other locations
than the Adjustment Layer Submenu and prevents Mari from creating its own Folders for your Nodes in the Menu structure.
Extension Pack has a new system to deal with Shortcuts in order to not enforce preset shortcuts onto the user if he doesn't want to
The following functions had their algorithm updated internally
- float Luminance();
The following functions were updated and require additional clamping arguments to work
- vec4 DT3D_PerlinNoise();
- vec4 DT3D_fBmNoise();
- vec4 DT3D_TurbNoise();
- vec4 DT3D_InigoNoise();
- vec4 DT3D_RidgedNoise();
The following functions were added to the openGL Function Overview:
- float col2Mask();
EXTENSION PACK 3.0 DEVELOPMENT |
- Jens Kafitz - http://www.jenskafitz.com
EXTENSION PACK 3.0 BETA TESTING |
- CINESITE
- Dwarf Animation Studio
- John Crowe
- Laurent Garcia
- Dave Girard
- Michael Piatek
Created with the Personal Edition of HelpNDoc: Qt Help documentation made easy