> [!abstract] Summary
> Practical guide to texturing in **Mari** using a **single-channel, nodal workflow**. Covers why Mari is preferred over Substance for hero assets, project setup, paint buffer settings, the core nodes (Channel, Geo Channel, Paint, Triplanar, Teleport…), the Mari Bakery, and a step-by-step workflow from basecolor to export.
---
# Part 1 — Why Mari (over Substance)
- All character-artist and hero-asset textures live in Mari.
- **Nodal vs Layer workflow**
- Retakes are easier in procedural / nodal.
- Better color management and viewport accuracy relative to the final render.
- Smooth, proxy, and displacement support built in.
- Substance is tailored for game engines (height maps, fake bump, etc.).
- Object versioning is handled natively.
- Bakes allow polygon-count optimization.
## Depth
![[image-20250301.png]]
## Resources
### Hotkeys
![[mari_hotkeyLIst.jpg|125]]
### Banks
- **Substance overlay inside Mari**
### References
- Zack Boxall
## Texel Density
![[Texel-Density-Texture-Map-Resolutions_v1-1-1024x786.jpg]]
---
# Part 2 — Before Opening Mari
> [!important] Preparation rules
> - Clean UDIMs and optimize UV ratio vs screen pixel.
> - Clean the mesh.
> - Prepare a proxy.
> - **One object per material type** — a single object cannot be both glass and metal at the same time.
## Extensions
- **Why?** To recover features found in other 3D softwares: masks inside nodes, node arrangement (colors, alignment, jump-to-node-type), procedural patterns, workspace saving, overlay sheets…
- `.mng` = Mari Node Group.
- Gizmo path: [Eagle Mari Gizmo](eagle://folder/LZKDE2847POAX)
### Substance-to-Mari Baking
![[file-20241011170000932.png]]
---
# Part 3 — Scalar vs RGBA
| Channel type | Meaning |
| --- | --- |
| **Color (RGBA)** | All nodes that are **visible on the mesh** (base color, subsurface, etc.) |
| **Scalar** | All nodes that are **not directly visible** (spec, spec roughness, bump, etc.) |
![[file-20240807095308661.png|275]]
---
# Part 4 — Project Settings
1. **Project directory**
- Store on an SSD.
2. **New project**
- Channel selection at this step. ~~Color management~~ is *not* set here.
3. **Preferences**
- **Navigation** → set to **Maya**.
- ![[file-20240807092604610.png|275]]
- **Node graph** → enable **snap to grid**.
- ![[file-20240807235950591.png|325]]
- Set the **UV Patch Size**.
- **Edit / HUD Manager / Tool Manager**
- [ ] Tool Help
- ![[file-20240807110256159.png|225]]
- **Right-click / Display Properties** — change the background.
- **Display Properties** — remove the grid.
## Paint Buffer Settings
- Display the buffer with **M**.
- **Ctrl + Shift** to scale it.
- **Why?** The buffer has its own resolution — dropping a 4K image into an oversized buffer loses resolution.
- ![[file-20240807112239563.png|200]]
| Setting | Behavior |
| --- | --- |
| **Bake behavior: Autobake** | Press **B** to bake. With Autobake + Clear you can rotate the camera and bake on the fly. |
| **Projection: Through** | Projects onto the back of the mesh too. Leave on **Front** by default. |
| **Project on: Selected only** | Preferable on complex objects. Use **All** otherwise. |
> [!warning] Mari only accepts **commas** for float input, not dots.
## Lighting
- Import HDRI:
- ![[file-20240807100939390.png|250]]
## UI
- You can **HIDE** part of the mesh.
- **Show all** is available from the **Selection** menu.
- Change background color:
- ![[file-20240807175655726.png]]
### Templates
- Save a template including node graph and lighting via **File / Template / Save Project Template**.
---
# Part 5 — Single-Channel Workflow
## Mari Bakery
Bake the maps you need:
![[file-20240808002136013.png]]
Select the bakes you want to run:
![[file-20240808002415769.png|450]]
| Option | Purpose |
| --- | --- |
| Select proxy + hi | Select both (or only hi if that's all you have) |
| Use same meshes for all bake items | Lets you drive all recipes with one separate geo |
| High poly search mode | Proximity ratio between proxy and hi-poly |
| Check **export on bake** | Exports the bake immediately, or bake to a **Geo Channel** to feed the workflow (Geo Channel is available from the Object menu) |
## Workflow
1. ~~Import masks from Substance~~ → use the **Mari Bakery**.
2. Create a shader (Principled BRDF or Arnold `standard_surface`).
- Tweak the shader in the shader lobe.
3. Set up the viewer (think Nuke-style viewing).
4. ~~Install extension~~
5. **Gather references**.
6. **Work in passes: low → mid → high frequency details.**
7. **Subdivide the object if needed.**
### Texturing passes
1. **Geo Channel Node** — import data from ~~Substance Painter~~ or the Mari Bakery.
2. **Work on Base Color.**
3. **Copy / paste to Specular**, then use levels + invert to derive **Roughness**.
4. **Add Bump and Normal.**
5. **Add details** — edge wear, leaks, dust, etc.
6. **Add breaks** — specular variations, etc.
7. **Export** via the Export Manager and pick the channels to output.
- Pack masks into RGB layers to export fewer files.
> [!note] Transparent shaders (glass, subsurface) are handled like a normal base color in Mari. The real shading happens in Arnold.
---
# Part 6 — Nodes Reference
### Channel Node
- Export / Resize UVs / Edit options directly in the channel lobe.
- ![[file-20240807093836754.png|300]]
- **Color = RGBA**, all channels invisible on the mesh = **Scalar** (spec, bump, etc.).
- ![[file-20240807095317870.png|225]]
### Geo Channel Node
- Imports data from Painter.
- Can handle multiple channels at once.
- Can be read by another Geo Channel Node without re-wiring.
### Paint Node
- Useful to build masks through painting or selection.
#### Selection Tool
- Start from a black paint (**Scalar** if it is a mask), then use the selection tool.
- ![[file-20240807101933121.png|116]]
- If the model is not split into parts, use **Smart Selection** to select separate object parts.
- ![[file-20240807102501164.png]]
- Switch the selection mode to **face**:
- ![[file-20240814175004884.png]]
- With the selection made → **Right-click / Fill with white**.
#### Paint-Through Tool
- Select the paint node when painting in the viewport.
### Import Textures
- Drag and drop into the **Image Manager**.
- ![[file-20240807105531083.png|225]]
### Tiled Node
- Projection on UVs.
### Triplanar Node
- XYZ projection.
- **Position input** = coordinate space (UV, object, etc.).
### Brightness Lookup
- Curve-based remapping.
### Height as Normal
- Lets you work purely with bump, then convert it to normal.
- Handy to preview a bump in black & white instead of RGB.
### Bake
- **Right-click** on any node (Paint node is easiest) → **File / Import** to bring in external data (Substance AO, etc.).
- If you use curvature or any real-time render node in Mari, **bake it**.
### Teleport Node
- For clean graphs — equivalent to Nuke's postage stamps.
![[file-20240807115516450.png|450]]
---
# Part 7 — Tips & Tricks
### Painting Tips
- Buffer resolution and distance to the object both matter.
- **Stamp Image** — stamp the image currently in the buffer.
- You can **mask the buffer by Edge or Depth**.
- ![[file-20240807184416728.png|500]]
- **Mirror Projection**:
- ![[file-20240807184543714.png|400]]
### Damage / Bump Elevation
- Emphasize damage with bump → blur with a bake.
- Use a curve to isolate the edges.
- ![[file-20240824174001872.png|500]]
- Multiply with a noise.
### Blurring Pixels
- Add a **Bake Point** node.
- Bake and add a blur filter.
- ![[file-20240814163423036.png]]
### Bump from Diffuse
- Put a 0.5 gray color as the base of a merge, diffuse on top in **Overlay** mode.
- ![[file-20240824165611514.png]]
### Geo Channel Node — Custom Channels
- Inside a Geo Channel Node you can create any channel you want, not only bakes. Use this to keep graphs clean.
### Warp the Paint Buffer
- Useful when precision matters.
### Mari Archive
- For project export.
### Import UDIM
- Paint node → **Right-click / Import** and select the UDIM texture you want.
---
# Part 8 — Substance / Mari Comparison
```embed
title: "Substance vs Mari"
image: "https://img.youtube.com/vi/t2tNEYUdwmQ/maxresdefault.jpg"
description: "Comparison of Substance and Mari workflows for 3D texturing."
url: "https://www.youtube.com/watch?v=t2tNEYUdwmQ"
```
---
# Part 9 — Fixes
> [!bug] Camera pan or rotation broken
> **Solution:** Camera / Reset Camera.
> [!bug] Camera rotation drifts outside of the model
> **Solution:**
> ![[file-20240917164200231.png|375]]