Released by Jens Kafitz, 2024 - www.MariExtensionPack.org   | Join us on ,or





RELEASED ON:   April 16, 2024


MINIMUM REQUIREMENT (for Mari 6.x):  MARI 6.0v1

MINIMUM REQUIREMENT (for Mari 7.x):  MARI 7.0v1 (to use Extension Pack 6 with Mari 7.1 or higher, please update to 6R2.v2)


TESTED ON:  Windows 10, Windows 11, CentOS 7 (for Mari 6), Rocky 9 (for Mari 7)




Mari 4.x and 5.x are supported by older Extension Pack versions (5R9) which are included in your purchase


Mari Non-Commercial  is not supported due to restrictions by the Foundry


Please note, Mari 7.1 requires that you update to at least Extension Pack 6R2.v2 to use it



       



ICONLEGEND


New Feature       Feature Update  


WELCOME TO EXTENSION PACK 6 R2


  • Welcome to Mari Extension Pack 6 R2, the first major update to the Extension Pack 6 Series. - and nearly as big as the initial 6R1 release.
  • Mari Extension Pack 6 R2 is a free update for existing Extension Pack 6 customers

  • For a full overview of what was added in the initial Mari Extension Pack 6 R1 release click here
  • For a playlist of all Extension Pack 6 R2 Feature Tutorials click here




NEW FEATURES

Click on a feature for more information

Take complete control over your exposed Attributes on Materials, Group Nodes and Custom Procedurals, with the brand new Node Editor.

The new Node Editor not only gives you the same features as Mari's native Knob Editor, it far surpasses its current abilities, allowing you to


  • Modify values such as "Current Value", "Default Value", "Minimum Value", "Maximum Value", Tooltip Description etc.
  • Easily inherit scene changes, push current Values as Default Values, Copy/Pasting of Values etc.
  • Create custom Groups, rename existing Groups, easily re-group attributes via a Table or Tree View.
  • Define default open/close state of Groups.
  • Create custom Node Tabs, to better organize your Node Interface into more than just Groups
  • Link attributes and break links selectively for attributes that have more than one  Source Attribute.
  • Jumping to Source Nodes and Source Node Properties
  • Filtering and non-linear Undo System
  • "Compare" Mode to compare two Nodes - to help with making interfaces and properties consistent



Example of Editing a Extension Pack Material Template inside the new Node Editor


A new Visibility Filter Toolbar has been added to the the top of the Selection Group Palette
The new toolbar offers a vast array of Filtering Options to control what Selection Groups should be visible - indispensable when working with large amount of Selection Groups.




The new toolbar allows you to 


  • Filter and set Selection Group Visibilities via Expressions and Word Searches
  • Filter based on type of Selection Group (Face, Patch, Object) and Material ID
  • Store and recall "Visibility Sets" - Snapshots of the visibility states of your Selection Groups.

You can now combine Selection Groups into a new Group via the new right mouse click "Combine Selection Groups" Option found in the Selection Groups Palette.


A dialog will open, allowing you to filter and select Selection Groups to combine





The new Ramp Editor finally introduces true Gradient editing to Mari by allowing you to edit Nodes in an intuitive Editor.

Supported nodes are


Apart from standard Ramp functionality, the Editor comes full with powerful features such as


  • Sequence Color Picker (pick entire ranges of colors from your reference image or anywhere else on screen)
  • multi key editing
  • OCIO Support
  • full Preset System with 1000+ existing presets


All in all, this Ramp Editor should be one of the more complete solutions you will find anywhere.




The RGBA Lookup is a Curve Node, allowing you adjust the Red, Green, Blue and Alpha Channel separately. It is similar to the standard Mari

"Color Lookup" Node but adds an additional Alpha Adjustment Curve.


The Node is designed to work best with the Ramp Editor.




  • The Pattern Shaper Node gives new options in regards to what you can achieve with basic patterns and noises.
    By relying on so called partial derivatives to shape an input signal into something new, even something simple as a perlin noise can be turned into a
    much more interesting pattern.






  • The Item List Switch (X10) Node allows you to switch between different Inputs using a Dropdown Menu. 
    What is special about this node compared to other available Switch Nodes, is that you can customize the amount and naming of items in the Dropdown

    Item List Nodes can be customized using the new Node Editor. For more information on editing the Item List Switch, refer to this topic specifically

  • The second Item List Node - the Item List (X10) Node - is designed to be able to drive multiple Item List Switch (X10) Nodes via an Override Index.
    As for the Item List Switch Node, its Dropdown Menu can be customized






  • You can update the resolution of the image at any time using the new Image Manager "Reload and Change SVG Resolution" Option.
    The pre-existing "Reload Selection" will simply reload the SVG at the originally chosen resolution.


Example of upgrading the resolution of a Vector file on the fly



  • The Right Mouse Click Menu in the Projector Palette has been slightly reorganized, placing Camera Specific Options into a separate "Camera" Submenu and moving the 
    Projection Wizard Options into a "Projection Wizard" Submenu

  • A new Option "Adjust Clipping Plane to Object" has been added to the new "Camera" Submenu of the Projector Palette.
    This will readjust the currently selected Projector's Clipping Plane to match the bounding sphere of the currently active Object.

  • When a new projector is added to Mari directly from within a Node (e.g. Camera Facing Gradient or similar), the new Projector's clipping planes will be auto adjusted to the currently active object.
    This will greatly improve convenience in working with node sliders that rely on the chosen projector's clipping planes to define slider min and max values.

    Example of adding a new projector directly from a node, auto-ranging the projector clipping planes for improved slider precision






    • n (Refractive Index)
    • k (Extinction Coefficient) 


Reflectance values (as can be obtained for example here) to "artistic" values of 

    • Reflectivity
    • Edge Tint


The inverse (Reflectivity/Edge Tint to n/k) is also supported.


Physical and Artistic IOR representations are supported by most common render engines.




  • The Unreal Advanced Shader now comes with an optional Clear Coat, with its own configurable roughness, color and specular level.

    Example of a fake iridescence clear coat applied


  • The shader now defaults to a black diffuse color instead of a transparent.

  • The previously built in PBR Validation controls have been deprecated. Use the PBR Safe Checker Node for more advanced PBR Checks

  • The Unreal Advanced Material Templates have been updated to include the additional Clear Coat controls



Nodegraph Smart Rename has had several updates to make it more predictable


  • The Node determining the Naming of other nodes is now always the first node in selected node chain. If there are multiple first nodes, the node on the farthest left is used

  • Separate Node streams are now evaluated in isolation of each other, meaning you no longer need to rename them one by one.


Smart Rename can be accessed from


  • Node Graph Right Mouse Click Menu / Misc / Rename
  • Nodegraph Marking Menu / Hotkey V



Expanding on work done for Extension Pack 6 R1, additional Options have been exposed to modify the visual Style of the Nodegraph 



Changes to Nodegraph Style Options still require a Mari Restart to take effect




  • You can now define a custom color for the highlighting of selected nodes or choose from additional preset colors that were added



  • A new option was added to the Nodegraph Preferences, to control the opacity of node outlines. A new default has been set, where node outlines are invisible, for a sleeker more modern look.



Setting is only available in Mari 6. Mari 7 already has the "borderless" look as its new factory default.





  • Apart from the previously existing Environment Variable MARI_EP_SUBSTANCE_BAKER_PRESET FOLDER (to specify a folder with Pipeline Bake Presets), you can
    now also specify a default pipeline preset, the Baker Bridge should open with. Two ways to configure this are available:

    • Specify the new Environment Variable MARI_EP_SUBSTANCE_BAKER_PREFERRED_PRESET with a name of a preset from the Pipeline Preset Folder.
    • Place a text file called "PreferredPreset.txt" with the name of the Preset, directly into the preset folder specified by MARI_EP_SUBSTANCE_BAKER_PRESET Variable


Users can at any point change the default preset from within the Baker Bridge Interface, by "pinning" another preset

Users can pin a preset as default from within the UI



  • Building on the Annotation Features introduced in Extension Pack 6 R1, you can now easily create Annotations displaying non-default Values of Nodes.
    Very useful if you need to share Screenshots of Nodegraphs !



  • Apart from creating "Node Change" Annotations, you can also easily remove them again for your entire graph, using the new "Remove Node Changes" Option
    or if you just want to selectively delete them, simply select and hit DEL.






  • A new "Scale to fit" button has been added to the "Transform Object" Toolbar, which will place active locators at the center of the parent object and scale them to fit the bounding box



  • The previously added "Align to view" option now places locators on an imaginary plane that runs through the object center, instead of at the edge of the objects bounding box


For the technical artists and shader writers, this Release of Extension Pack adds a number of new Math/Function Nodes to Mari, focusing on Partial Derivatives.

The following Nodes have been added:



  • Rotating Lights via the Arrow Hotkeys from Mari 7.0v2 on wards can now be done by pressing and holding the hotkeys, instead of repeated key presses

  • The Performance of the Material ID from Selection Group Tool has been improved, and it will now run considerably faster if many Selection Groups share the same ID Color.
    In a test case with 628 Selection Groups, sharing 13 unique ID Colors, Speed Improvements of 95% were measured compared to the old method.

  • A new "Geo Version Naming" Preference  has been added to the Misc Tab of the Mari Preferences, which allows you to set the default naming scheme for newly loaded geometry versions


  • Color/Scalar Toggles on Color Fields within Nodes now default to "Scalar" Mode where it makes sense, to save an extra click in the Color Picker dialog



  • Some nodes will now force Mari's View Transform to "Scalar" when a viewer is attached, even if the node is not attached to another node's scalar port.



  • Quicktips at the bottom of Extension Pack Dialogs are now more readable and clickable to cycle to other tips. In addition you can now press Hotkey "F1" to cycle the Tips



  • The maximum precision of value fields has been increased from double (2 decimals) to full floating point for the nodes Set Range, Set Range (Non-Uniform), Remap Float, Float and Float-3

  • The Illegal Value Warning Node now is just called "Value Warning" and has additional Mask Ports and Bounds Ports




  • Importing a Nodegraph via the Nodegraph Right Mouse Click / File / Import Nodes option, will now focus & frame the newly imported nodes in the graph.



  • The Smart Mask Setup Dialog now has convenience options to switch all dropdowns simultaneously        


  • Extension Pack List Dialogs now support double-clicking to add and remove items. 



    This functionality is now available for 


  • Using the Buttons of the Preset Browser to import the preset (instead of drag & drop) would import the preset at its original saved location in the Nodegraph.
    Instead the Presets are now imported at the center of the currently open Nodegraph


Loading of HDRIs with same name to a shelf is now prohibited, if the Base Folder Name the file is located in,  is identical to an existing shelf item e.g.

    • /ProjectA/HDRIs/Studio/Studio.exr will not load if a file /ProjectB/HDRIs/Studio/Studio.exr already exists in the Environments/Studio Shelf


The two determining factors if file will load are 


    • Filename (e.g. Studio.exr)
    • Base Folder (e.g. /Studio/)


If the Base Folder Name is different than an existing Mari Shelf Name, files will still load.


  • For Mari 7, the Text Tool is now again part of the Main Tools Toolbar


  • For Mari 7, the "Pause Viewport Rendering" Action is now again part of the "Project Control" Toolbar



  • Extension Pack now saves Project Specific Data into a subfolder EP_PROJECT_DATA within the Project Directory

  • Extension Pack now saves a log of any Python Errors that may occur during execution of its tools. The log files can be found in the Mari Log Directory and are named 

    • MEPLog_{MachineName}_{Month}_{Year}.txt




BUGFIXES


  • Launching a Nodegraph Hotbox on Linux did not work, while the Nodegraph was in a floating Panel away from Mari's Main Application Window

  • Launching a Hotbox on Linux, while Mari's Application Window was scaled pretty small, would open the Hotbox offset from the Cursor


  • The Linux issues that prevented the "Hotkey Press and Hold" method to work for Hotboxes have been resolved and "Press and Hold" has been reactivated

  • Trying to quickly launch successive Hotboxes in the Nodegraph - without clicking in the Nodegraph between closing a Hotbox and launching the next one - did not work until
    the focus was returned to the Nodegraph

  • The "Presets" Submenu in the Nodegraph Tools Hotbox (Hotkey "V") was empty


  • The Progress Dialog of the "Import Project Template" Dialog sometimes would not close on its own

  • "Import Project Template" could error, if the imported Template had a viewer node active in a sub-graph

  • On nodes with more than one possible "Locator" Attribute, the dynamic locator creation system would ignore pre-assigned locators and always create its own "Temporary Locator"

  • Due to a Mari Bug, adding a locator as a child to an object that already has a (mari) transformation, would auto-add the transforms of the object to the locator - potentially
    causing double transforms and a change in locator position, each time the locator was activated.

    To work around this, Extension Pack's temporary Locators, that get created automatically when using the transform tool with a Node selected, now no longer get created
    as child locators of the main object.


  • The HUD was included in the Node Thumbnail, when using the "Node Thumbnail from View" Option

  • "Swap Node Type" (Hotkey "X") did not restore the Node Portlist Mode (e.g. collapsed, expanded etc.) on the swapped Node

  • The safe space around Mari's window corners was not large enough for "Swap Node Type" and "Bookmark" Dialogs, 
    which could cause the dialog to open half of screen if the cursor was too close to the edge of the Mari window.



  • Smart Rename would sometimes inherit the node name from an undesired node

  • Smart Mask Setup could error and fail if you previously deleted an Ambient Occlusion or Curvature Channel, then recreated the Channels with exact same name

  • Export Custom Channel Selection, when launched with "Export in Background" option ticked on,  still showed the Progress dialog window

  • Export Custom Channel Selection, would not flatten a node network, when a channel only consisted of a Merge Node, a Paint Node and a node other than "Bottom Transparency"

  • Export Custom Channel Selection and Create Packed Channels were not displaying the resolved colorspace name next to a OCIO role.

  • When Mari together with Extension Pack was launched on a System where Mari never was launched before, Extension Pack would only load the second time Mari started.

  • "Convert to Paintable" in the Layerstack would fail, when run on a Material Layer


  • Using Layer / Add Channel Layer with a Locator selected in the Object Palette could crash Mari.

  • The Text Tool would immediately on launch write a file to the Image Manager ("Lorem Ipsum"), causing the previous default file (containing potentially user written text) to be overwritten

  • The Text Tool allowed typing in arbitrary text into the "Text Stretch" Field which could cause a python error

  • The Object Subdivide Dialog now correctly observers Subdivision Schemes set on USD Geometry when the "Inherit SubD Settings from Object Source File" Option is turned on

  • Changing the Node Style (Color, Shape) on a Group Node Input or Output Node would break the Group Node's Input/Output Ports. Changing the Node Style on Group Node Input or Output Nodes is now deactivated.

  • Importing a Nodegraph that was saved in a Mari Version without Extension Pack, would randomize the Backdrop Colors

  • The Image Annotation "Icon Library" did not reload Image aliases when one of its Tabs was reloaded.

  • Extension Pack's HDRIs could get installed to the shelf more than once when switching between Extension Pack Versions

  • The Substance Baker Bridge would error for users where the Mari User Settings Directory was not generated.

  • Importing a Bake from the Substance Baker Bridge into an existing Channel could fail, if you previously deleted the channel and had recreated it with the exact same name


  • A piece of the Speeder Default Object had reversed normals

  • Trying to make a cyclic connection with a radio node (a connection that breaks the DAG) would fail with a Python error and the Undo System would stop. 
    The error is now handled properly and a warning is displayed to the user that the connection cannot be made.

  • Using "Select Last Shader" (Shading Menu or Hotkey "N") with a Locator selected in the Object Palette would cause an error


  • URL links in some dialogs with the new "Extension Pack Blue" Theme were hard to read


  • The Splash Screen was only pulling from local content when clicking on the "Shuffle" Button, instead of looking up the Online Content.

  • The Help explanation, how to convert a Axis Projection from "Object Center" mode to "World Space" mode without look changes was wrong



  • Mari on Linux would shut down with a crash due to Extension Pack adding various actions to standard mari toolbars

  • In Mari 7 the 3D Scan WIzard could error & fail because Mari 7 no longer creates Group Output Nodes by default



API Updates


  • A new "Modified" Tag has been added to the Python Docstrings which can be used to find functions that have been modified or expanded with new functionality


  • New Python methods are available. You can find them tagged as EP6R2 in the Class/Method Overview.

    A incomplete list with some examples can be found below:

    • mari.ExtensionPack.imageManager.rasterizeVectorImage(filePath, colorSpaceConfig, size)

      Imports a rasterized version of a SVG file into Mari

    • mari.ExtensionPack.nodegraphSelection.getSeparateNodeStreams(nodelist)

      Takes a given list of nodes and returns the separate node streams.

    • mari.ExtensionPack.project_paths.setProjectPathVariable(variable_name, variable_data, set_active=True)

      Provides an API way to set project specific paths that auto-restore when the project is opened.
      The UI way to do this is via the File / Set Project Path Dialog

    • mari.ExtensionPack.utils.correctPath(path)

      Convenience method to deal with slash issues inside paths. Also respects Server paths

    • mari.ExtensionPack.utils.sanitizeText(text, sanitizeSlashes=False, removeWhiteSpace=True)

      Convenience method to sanitize text of invalid characters (e.g. chars that would cause issues when writing a file name)


    • mari.ExtensionPack.utils.shortenText(text, characterLimit=50, shortenStart=False, short=' ... ')

      Convenience method to shorten the start or end of a given string

    • mari.ExtensionPack.selection_group.combineSelectionGroups(groupList, newName, removeOld=False)

      Combine multiple selection groups into a new one


    • mari.ExtensionPack.selection_group.getVisibilitySets()

      Returns the newly introduced visibility sets



  • Extension Pack now registers its own Exception Handler to sys.excepthook to facilitate its new logging

    The Exception Handler is setup to continue to call previously registered Exception Hooks. 
    However if necessary, the Exception Handler can be disabled by setting the Environment Variable

    MARI_EP_PREVENT_EXCEPTION_LOGGING


  • Extension Pack's native Exception Handling class and its signals can be accessed and used further by calling

    mari.ExtensionPack.exceptions.getExceptionHandlerClass()

  • For detailed information on the new Exception Handler, refer to the dedicated Help Topic.



Deployment Updates


  • Please note, Extension Pack 6 R2 will be the last version to be QA'd on Linux CentOS. Going forward all Linux QA will happen on Rocky Linux 9 exclusively.



  • The downloadable Offline Help has been updated. You can download it from here.

  • A new number of changes have been made to the way you deploy the offline help. Please see topics below for more information



The way you can localize the Online Help to your machine or network has been improved. For detailed information click here


  • A new Environment Variable MARI_EP_HELP_LOCATION has been introduced, allowing you to specify the folder where the Help Files are located

  • Local Help Files are now automatically served via its own local webserver, included in Extension Pack

  • Custom local webservers are supported.



For Extension Pack's own web server to work you need remove the PREVENT_LOCAL_HELP_SERVING Flag first





  • Online Help and splash screen online Content is now being pulled from https://www.MariExtensionPack.org and subdomains (e.g. https://docs.MariExtensionPack.org).