-
Notifications
You must be signed in to change notification settings - Fork 0
Channel Types
Every texture in UV Texture Repacker carries a channel — a label that says what kind of data the texture holds (Albedo, Normal, Roughness, Metallic, Height, …). The channel is what determines:
- Which atlas image the texture goes into. Each channel produces its own atlas (
atlas_Albedo.png,atlas_Normal.png, …). - Whether the texture is treated as a tangent-space normal map and re-shaded under UV rotation.
- The colour of the pill that shows in the outliner.
This page is about how channels are assigned and how to customise that. For the dialog that controls which channels are available in your project, see Active Texture Types.
Click the coloured pill at the right end of any texture row in the Outliner. A popover opens listing every active channel. Click one to assign it.
Multi-row tip: if you have multiple texture layers selected (Ctrl- or Shift-click in the outliner), clicking the channel type dropdown list on any one of them re-types every layer in the selection.
When you add a texture, the app guesses its channel from the filename. The guess is based on a priority-ordered table of canonical channel names and their common abbreviations.
The match rules:
-
Single-letter aliases (D, S, R, M, N, G, E, H, O, …) only fire after a separator — whitespace, underscore, hyphen, or dot — or at the start of the stem. So
wall_D.pngis recognised as Albedo, butwood.pnganddragon.pngare not. -
CamelCase boundaries are split before matching.
wallM.pngbecomeswall_M, so the trailingMreliably maps to Metallic. -
Trailing trash is peeled off:
(1),.0001,_v01, lone trailing digits. Sowall_normal_v01.0001.pngmatches Normal cleanly. -
US and GB spellings both match:
colorandcolour,grayandgrey. -
Specific normals (WSN, OSN, BN, TN) take precedence over the generic Normal rule.
wall_WSN.pngbecomes World Space Normal, not Normal. -
Specular Color sits above Albedo so
wall_specular_color.pngis not caught by Albedo'scolorvariant. - The match is case-insensitive.
If no rule fires (the filename is just wood.png, say), the texture is assigned to whatever is first in your Active Texture Types list — usually Albedo.
If a rule fires for a channel that is not in your Active list, the rule is skipped and the next one is tried. Channels you have not enabled never get auto-assigned.
| Filename ends with | Channel |
|---|---|
_albedo, _basecolor, _BC, _color, _diffuse, _D
|
Albedo |
_normal, _N, _nrm
|
Normal |
_normal_world, _WSN
|
World Space Normal |
_normal_object, _OSN
|
Object Space Normal |
_roughness, _R, _rough
|
Roughness |
_glossiness, _G, _gloss
|
Glossiness |
_metallic, _M, _metal
|
Metallic |
_specular, _S, _spec
|
Specular Level |
_specular_color, _specularColor
|
Specular Color |
_height, _H, _disp
|
Height |
_AO, _ambient_occlusion, _O
|
Ambient Occlusion |
_emissive, _E, _emit
|
Emissive |
_opacity, _alpha
|
Opacity |
_curvature |
Curvature |
This is a partial list. The full set of canonical names is visible in the Available column of the Active Texture Types dialog.
The app reserves ten slots called custom0 through custom9 for channels that do not have a canonical name. A common use is ORM (Occlusion / Roughness / Metallic packed into a single texture) — there is no canonical "ORM" channel, but you can rename custom0 to "ORM" and use it.
To rename a custom slot:
- Open Preferences (title bar) → the Channel match rules section.
- Find the row for the custom slot.
- Click the small pencil icon next to the slot's display name.
- Type the new label.
The rename is purely cosmetic on your machine. The project file (.muvp) stores the slot key (custom0), not the renamed label, so a project shared with someone who has different rename labels still loads correctly.
The default auto assign rules are described here in details
In Preferences → Channel match rules, every channel has an optional Regex field. When you put a non-empty pattern there:
- That regex replaces the built-in rule for that one channel.
- Other channels keep their built-in rules.
- If your regex fails to compile (typo, unclosed bracket), the channel ends up with no rule — textures matching what you intended will fall through to the first-active fallback, but the built-in rule is still suppressed (so the failure is visible).
The pattern is matched case-insensitively against the filename stem (without extension or trailing trash). Use this when:
- Your studio's filename convention differs from the built-in rules.
- You want a custom slot (ORM, MRA, etc.) to auto-assign from a specific suffix.
If you would rather assign every channel by hand, open Preferences → Scene and turn off Auto-assign channels from filename. Newly added textures will all default to the first-active channel; you can re-type them via the pill popover.
The app treats a texture as a tangent-space normal map when its channel name contains "normal" but not "world" or "object". The classification matters for one feature: when Allow 90 UV rotation is on and the packer rotates a shell, the corresponding pixels in the tangent-normal atlas are automatically re-encoded so the lighting on that rotated shell looks identical to the unrotated form. Object- and world-space normal maps are not re-shaded — their encoded frame is independent of UV orientation.
This is automatic. There is no per-row "Kind" picker because most artists do not know that tangent-space normals need this re-shade. Naming a normal channel sensibly (normal, WSN, OSN) is enough.
- Active Texture Types — the dialog that controls which channels are available.
- Outliner — assigning channels per row.
- Preferences — Channel match rules section.
- Concepts — the maths behind tangent-normal re-shading.
New users
The interface
Working with channels
Reference
Help