Free ORM / Channel Packer
Pack ambient occlusion, roughness, and metallic into one RGB texture — the standard ORM map for Unreal and packed glTF. Invert any channel for Unity smoothness. Free, with no sign-up.
100% in your browser — your maps are never uploaded.
Ambient occlusion
Red channel
Roughness
Green channel
Metallic
Blue channel
Runs entirely in your browser — your maps are never uploaded.
Output is an ORM map: AO in red, roughness in green, metallic in blue — drop it into Unreal, or use it as a packed glTF texture. Missing a map? Leave it as a constant.
How to use it
- 1
Add your maps
Drop a grayscale map into each channel — ambient occlusion to red, roughness to green, metallic to blue. Don't have one? Leave it as a constant value.
- 2
Invert if needed
Toggle Invert on a channel to flip it — for example, turn a roughness map into a smoothness map for Unity's metallic/smoothness workflow.
- 3
Download the ORM map
Save the packed RGB PNG and plug it into Unreal's material, a packed glTF texture, or your engine's mask-map slot.
Need the maps in the first place? Generate a full PBR set — base color, roughness, metallic, AO and more — on your model in the Mixos editor, or grab ready-made tiling materials from the free CC0 library.
Frequently asked questions
What is an ORM map?
ORM packs three grayscale PBR maps into one RGB image to save texture memory and draw calls: ambient Occlusion in the red channel, Roughness in green, and Metallic in blue. It's the standard packed texture for Unreal Engine and is commonly used with glTF.
Does this upload my textures?
No. It's free with no sign-up and runs entirely in your browser using the canvas API — your maps never leave your device.
Can I make a Unity mask map?
You can pack any grayscale maps into R, G, and B and invert any channel. Unity's HDRP mask map uses a different channel order (metallic, AO, detail, smoothness), so assign your maps to match and invert roughness to get smoothness.
What if I only have some of the maps?
Leave any channel as a constant value — for example, set metallic to 0 for a non-metal surface, or AO to white (255) if you have no occlusion map. The packer fills that channel with a flat value.
What size is the output?
It matches the largest map you add (capped at 2048px), so mixed-resolution inputs are scaled to a common size. With only constants, it outputs 1024×1024.
Author the maps, then pack them.
Mixos paints and generates full PBR materials on your 3D model and exports clean, organized map sets — ready to pack and drop into any engine. Free to author.
Open the studio