Texture Packer is a Unity editor plugin designed to pack multiple texture maps into different channels of a single texture.
For example, using RGB channels:
- R = Ambient Occlusion
- G = Metallic
- B = Mask
This approach helps save VRAM by using one texture instead of several separate ones. Repository Contents
-
TexturePacker.cs: an editor script used to pack textures
-
ShaderTest: a shader that supports packed textures generated by the plugin
The plugin is located in the Tools folder:
The plugin has four slots (unused slots can be disabled). Each slot is assigned to a specific output channel, which can be selected manually.
Warning: If two slots are assigned to the same channel, the data from the last slot will overwrite the previous one, since the packing process is linear. Changing slot names has no functional effect — they are purely cosmetic.
Each slot has two settings: Source and Type.
Defines what data is written from the input texture into the selected output channel. Available options (7 total):
-
RGB: combines all RGB channels into one value
-
R, G, B, A: reads data from the selected channel
-
Mask: (experimental / alpha feature) The idea was to store colors as bits, allowing up to three colors to be stored in a single channel and later decoded in a shader
-
Color: fills the channel with a constant value (0–255)
Defines how the data is processed before writing. Available options (2 total):
- Default.
- Inverse RNS: inverts the value (originally designed for Roughness = Smoothness conversion)
The first three options are self-explanatory:
-
Texture Write Format: Defines the format used when writing data into the output texture
-
Overwrite Existing File: Overwrites the output file if it already exists
-
Auto Texture Formatting: Automatically selects texture compression based on the number of channels (for example, 4 channels = BC7)
-
Enable sRGB: Enables sRGB color space (can also be set manually)
The repository includes shaders designed to work with packed textures. There are two supported workflows:
The shader expects:
- R = Normal X
- G = Normal Y
- B = Smoothness
- R = Ambient Occlusion
- G = Metallic
- B = Emission
All data is packed directly into Albedo and Normal textures:
- RGB = Albedo RGB
- A = Ambient Occlusion
- R = Normal X
- G = Normal Y
- B = Smoothness
- A = Metallic or Emission
The don't recommended way to install the package is through the package manager in Unity (UPM). if you want a install this package with package manager this instruction with you: Before installing, make sure that URP is installed and correctly set up in your project. Then you can proceed to install this package:
-
Inside Unity, go to "Window"=> "Package Manager".
-
Once the window is opened, go to the "+" symbol at the top left corner, and select "Install package from git URL". See the image below. Install
- Write the following URL: https://github.com/Woolction/Texture-Packer.git and click install.
(Intsall the package with install zip! this is recomended way to install the package)
If you install the plugin using Package Manager, then you can find Shader in the Shaders tab => CustomPBR







