Free Texture Channel Packer
Drop your grayscale maps and get a single packed texture: a Unity HDRP mask map, a URP metallic-smoothness map, or an ORM texture for Unreal, Godot and glTF. Roughness converts to smoothness with one click, and nothing is uploaded.
- Free
- No signup
- Files stay on your device
Have a roughness map? Turn on Invert.
Drop your maps anywhere on the tool, or click a channel to upload one. Files named like Rock_Metallic.png or Rock_Roughness.png are placed automatically.
How to use the Texture Channel Packer
PBR materials read several grayscale maps: metallic, ambient occlusion, and roughness or smoothness. Storing each as its own texture wastes memory and texture samples, so engines expect them packed into the red, green, blue and alpha channels of one file. This packer does that channel by channel and writes the PNG byte for byte, so the alpha channel is stored as data rather than transparency and never damages the other three maps.
- 1Pick a preset: Unity HDRP mask map, Unity URP metallic, ORM, or Custom.
- 2Drop all your maps on the tool. Files named like Rock_Metallic.png or Rock_Roughness.png go to the right channel automatically; drop a file on a channel tile to place it yourself.
- 3For a channel without a map, set a constant value with the slider.
- 4Turn on Invert to convert roughness to smoothness or back.
- 5Choose the output size and download the packed PNG.
Frequently asked questions
What goes in each channel of a Unity HDRP mask map?
Red is metallic, green is ambient occlusion, blue is the detail mask and alpha is smoothness. If you have no detail mask or occlusion map, leave those channels at 255 (white). The HDRP mask map preset sets this layout and those defaults for you.
How do I convert a roughness map to a smoothness map?
Smoothness is inverted roughness: smoothness = 1 − roughness. Drop the roughness map on the Smoothness channel and turn on Invert. If the file name contains "roughness", the packer does both steps for you.
What is an ORM texture?
ORM stands for Occlusion, Roughness, Metallic: ambient occlusion in red, roughness in green and metallic in blue. It is the layout glTF uses, the usual convention for Unreal Engine materials, and what Godot’s ORMMaterial3D expects.
Where does Unity URP read metallic and smoothness from?
The URP Lit shader’s Metallic Map uses the red channel for metallic and the alpha channel for smoothness; green and blue are ignored. Ambient occlusion goes in the separate Occlusion Map slot, which reads the green channel. The built-in render pipeline’s Standard shader uses the same layout.
Why does my packed texture look transparent in an image viewer?
Because the alpha channel holds smoothness, not opacity, so viewers show low-smoothness areas as see-through. The file is correct, and it is why this tool shows an RGB-only preview. In the engine, import it as a linear texture: untick sRGB (Color Texture) in Unity, or sRGB in Unreal Engine.
Do all the maps need to be the same size?
No. With Match input, the output takes the size of the largest map and smaller maps are scaled up to fit. You can also force 1024, 2048 or 4096 pixels. For the sharpest result, export every map at the same resolution.
Can I reorder the channels of an already packed texture?
Yes. Drop the packed texture on each channel tile and pick which of its channels (red, green, blue or alpha) that tile reads. That converts between layouts, for example from an ORM texture to a Unity mask map: read green into Smoothness with Invert on, red into Ambient occlusion and blue into Metallic.