Texture Channel Mixer

Texture Channel Mixer

Pack up to four grayscale texture maps into the R, G, B, and A channels of a single image. Reduce GPU texture samples in Unity HDRP, Unreal Engine, and custom PBR shaders. Live preview, instant client-side processing, no uploads required.

Channel Inputs

Common packing presets:

Drop grayscale map or browse
eg. roughness, metallic, AO
Drop grayscale map or browse
eg. roughness, masks
Drop grayscale map or browse
eg. masks, detail maps
Drop grayscale map or browse
Optional. eg. opacity, height, transparency mask

Each input writes its grayscale value to its assigned channel. Missing channels default to black (R=0, G=0, B=0, A=255). All inputs are stretched to match the largest resolution.

Preview

How It Works

1

Upload Maps

Drag grayscale maps into each channel slot: R, G, and B. Supports all common image formats up to 8K resolution.

2

Preview Live

See each channel individually and the final packed RGB output update in real time as you add or swap maps.

3

Download

Export your packed RGB texture. PNG, JPEG, and WebP are instant. TIFF, BMP, AVIF, and EXR available via server-side export.

Why Channel Pack?

Channel packing is a standard optimization in game development and real-time rendering. Here is where packed textures make the biggest impact.

Fewer Texture Samples

Sample one texture in your shader, extract R/G/B channels. Three maps for the cost of one GPU texture lookup, saving memory bandwidth.

Standard PBR Packing

Unity HDRP and Unreal Engine expect packed masks: R = Metallic, G = Occlusion, B = Detail Mask (or R = AO, G = Roughness, B = Metallic). Pack to match your pipeline.

Smaller Build Size

Three grayscale PNGs become one RGB PNG. Fewer files on disk, faster streaming, smaller downloads for WebGL and mobile games.

Custom Mask Workflows

Pack any three grayscale masks: detail maps, height, wear, emissive strength, subsurface, or custom shader data into one compact texture.

100% Client-Side

All packing is done locally in your browser. Your texture maps are never uploaded anywhere, complete privacy guaranteed.

Game Engine Ready

Output textures work directly in Unity (Built-in, URP, HDRP), Unreal Engine 4/5, Godot, Blender Eevee/Cycles, and any custom PBR shader.

Related Texture Tools

Combine the channel mixer with our other free texture tools for a complete material authoring workflow.

Seamless Texture Maker
Make any image tileable with live edge-blending and tiled preview.
Normal from Height
Convert height maps into normal maps for 3D materials.
Noise Generator
Procedural Perlin, Voronoi and Worley textures, seamless by default.
Image to PBR
Generate full PBR material maps from a single base color image.
Color Correct
Adjust brightness, contrast, saturation, and hue on textures.

Frequently Asked Questions

Channel packing stores multiple grayscale textures in the R, G, B, and sometimes A channels of a single image. In your shader, you sample the packed texture once and split the channels, reducing GPU texture lookups from three to one. This saves memory bandwidth, reduces draw calls, and is a universal optimization in Unity HDRP, Unreal Engine, and custom PBR pipelines.
Unity HDRP defaults: R = Metallic, G = Ambient Occlusion, B = Detail Mask. Unreal Engine: R = Ambient Occlusion, G = Roughness, B = Metallic. This tool lets you assign any grayscale map to any channel, so match whatever convention your shader uses. If your pipeline uses a different layout, just assign accordingly.
Yes. Any channel without an uploaded image will be black (value 0). This is safe for PBR workflows where unused channels are ignored or default to 0. You can pack just one or two maps and leave the rest blank.
The output automatically uses the largest width and height among your uploaded inputs. Smaller maps are stretched to match that resolution. For best visual fidelity, pre-size your source maps to identical dimensions before packing.
Seven export formats. PNG, JPEG, and WebP are marked "(instant)" and download immediately with no login. TIFF, BMP, AVIF, and EXR are marked "(server)" — these require a free account and count toward your daily premium operations limit (5 per day free tier, unlimited on paid plans).
No. All channel packing is done entirely in your browser using JavaScript Canvas APIs. Your texture files never leave your computer. The only exception is server-side export formats (TIFF, BMP, AVIF, EXR), where the already-packed RGB image is sent to our backend purely for format conversion and immediately discarded after processing.
Yes. This tool supports all four channels: Red, Green, Blue, and Alpha. The Alpha slot accepts an optional fourth grayscale map (eg. opacity, height, or a transparency mask). Simply drop a map into the Alpha upload zone and it will be written to the A channel of the output PNG. If you leave the Alpha slot empty, it defaults to fully opaque (255).