Texture Channel Packer
Upload loose maps, a ZIP, or an MCPACK; assign any source component to R, G, B, or A; then export a lossless PNG or a documented package.
Free workflow: local processing and 256px or 512px export are included after sign-in. Mapper+ unlocks output above 512px.
Start the browser workflow
Privacy: image decoding, archive inspection, channel processing, and package creation run in the browser.
What does a texture channel packer do?
A texture channel packer copies a chosen component or grayscale value from separate source maps into the red, green, blue, and alpha components of one image. The preset is a shader contract: Unreal ORM and glTF ORM use R=AO, G=roughness, B=metallic; Unity HDRP Mask Map uses R=metallic, G=AO, B=detail mask, A=smoothness; Minecraft uses MER or MERS.
Supported channel-packing contracts
| Preset | Channels | Import requirement |
|---|---|---|
| Unreal ORM | R AO, G roughness, B metallic | Disable sRGB; use mask/data compression. |
| Minecraft MER | R metalness, G emissive, B roughness | Reference with metalness_emissive_roughness. |
| Minecraft MERS | MER plus A subsurface | Resolve metal/subsurface overlap per pixel. |
| Unity HDRP Mask Map | R metallic, G AO, B detail, A smoothness | Disable sRGB. Invert roughness for alpha. |
| glTF ORM | R occlusion, G roughness, B metallic | Reference the same image from two glTF texture slots. |
How to use Texture Channel Packer
Load and confirm map roles
Drop loose images, ZIP, or MCPACK. Filename detection is a suggestion, so confirm ambiguous files.
Choose the destination contract
Apply a preset, then override source file, component, inversion, or neutral constant for any channel.
Inspect packed and isolated channels
Review RGBA and each grayscale component, plus mismatch and resampling warnings.
Download PNG or documented ZIP
ZIP adds a machine-readable channel manifest, import README, and preset-specific metadata.
Texture Channel Packer FAQ
Can I upload a ZIP?
Yes. ZIP and MCPACK archives are CRC-checked and expanded locally, with map-count and expanded-size limits to avoid unsafe browser memory use.
What happens when maps have different sizes?
The largest active source defines the native output grid. Smaller inputs are resampled and named in the export manifest.
Should a packed map use sRGB?
Usually no. ORM, MER, MERS, and Mask Map channels are scalar material data and should be sampled as linear or non-color data.
How does glTF use one ORM image?
The same image is referenced by occlusionTexture and metallicRoughnessTexture; the first reads red and the second reads green and blue.