> [!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]]