ORM Texture Packer
Pack ambient occlusion into red, roughness into green, and metallic into blue without sending the source maps off the device.
Upload and preview without signing in. Sign in to download 256px and 512px PNGs. Mapper+ unlocks 1K, 2K, original-resolution export, and all six non-albedo PBR maps in one workspace.
Channel sources to Packed ORM preview
Upload and preview AO, roughness, and metallic packed into RGB without signing in, then sign in to export a 256px or 512px ORM PNG locally.
Privacy: image decoding, pixel processing, preview, and PNG download run locally in the browser.
What is an ORM texture?
An ORM texture stores ambient occlusion in the red channel, roughness in green, and metallic in blue. Packing three scalar maps into one RGB image can reduce texture samples and file management when the destination material expects this exact layout. The packer rescales smaller inputs to the largest selected pixel grid; missing AO defaults to white, roughness to mid-gray, and metallic to black.
- Red
- Ambient occlusion
- Green
- Roughness
- Blue
- Metallic
- Import
- Linear / non-color
How to use the ORM Texture Packer
Add scalar maps
Upload AO, roughness, and metallic images. Each source is reduced to luminance before it is written into its destination channel.
Confirm roughness direction
If the green source is smoothness or gloss, enable exact inversion before packing.
Review dimensions and defaults
The largest input sets the output pixel grid. Missing channels receive explicit neutral defaults instead of undefined data.
Download and bind by contract
Import the PNG as linear data and connect R, G, and B to the slots expected by the destination material.
Common packed material layouts
Channel packing is a contract, not a universal image meaning. Confirm the destination before export.
| Layout | Channels | Typical use |
|---|---|---|
| ORM | R = AO, G = roughness, B = metallic | Unreal-style workflows and shared material pipelines |
| glTF metallic-roughness | G = roughness, B = metallic; occlusion is a separate texture reference | glTF 2.0 assets |
| Unity HDRP Mask Map | R = metallic, G = AO, B = detail mask, A = smoothness | Unity HDRP |
| Minecraft MER | R = metallic, G = emissive, B = roughness | Minecraft Bedrock RTX texture sets |
ORM Texture Packer FAQ
Do the three input maps need the same dimensions?
Matching dimensions are best. This tool uses the largest selected input as the output grid and resamples smaller files, while reporting the dimension mismatch for review.
What happens when a channel is missing?
Missing AO becomes 255, missing roughness becomes 128, and missing metallic becomes 0. Those defaults mean no baked occlusion, medium roughness, and dielectric material.
Can I pack a smoothness map into green?
Yes. Select Smoothness input and the packer writes 255 minus the source value into the roughness channel.
Should an ORM texture use sRGB?
No. Every ORM channel stores scalar material data, so the packed texture should normally be imported as linear or non-color data.
Is the ORM Texture Packer free?
Yes. As of August 26, 2026, the ORM Texture Packer is free after sign-in. Free accounts can process images in the browser and export 256px or 512px PNG files.
Which ORM Texture Packer export sizes require Mapper?
Exports above 512px require Mapper or a higher plan. Mapper+ unlocks 1K, 2K, and original-resolution export in the standalone tool, plus the full PBR Map Generator for creating normal, height, roughness, metallic, ambient occlusion, and emission maps together.