Skip to content

Export Textures for Unity (Built-in and URP)

This guide covers the Unity Built-in / URP destination on Export Texture and the matching source on Texture Folder. The files are written for Unity’s Standard shader and for URP’s Lit shader, which read smoothness from the alpha of the metallic map. For the High Definition Render Pipeline, see Unity HDRP.

SettingValue
DestinationUnity Built-in / URP
Filename Template{name}_{channel}
Normal ConventionOpenGL
HeightUnsigned container

Shown for a set named oak_bark with all eight roles (how to read these tables). A set with fewer roles writes fewer files.

FileWhat it holdsContainer and depthEncoding
oak_bark_BaseMap.pngBase Color in RGB, the set’s cutout in alphaPNG 8-bitColor
oak_bark_Normal.pngNormalPNG 16-bitPacked normal, OpenGL
oak_bark_MetallicSmoothness.pngPacked: R Metallic, G Ambient Occlusion, B constant 0.0, A smoothness (1 minus Roughness)PNG 8-bitLinear data
oak_bark_Occlusion.pngAmbient OcclusionPNG 16-bitLinear data
oak_bark_Height.pngHeight, remapped into 0 to 1 when it runs outside itPNG 16-bitLinear data
oak_bark_Emission.pngEmissivePNG 8-bitColor

Unity documents red metallic, green occlusion, alpha smoothness as one channel-packed RGBA texture, so MetallicSmoothness can fill both the Metallic Map and the Occlusion Map slot. The separate grayscale Occlusion file is written too, for anyone who prefers one; untick its row if you do not want it.

The alpha lane is written as 1 minus the set’s Roughness. A set with no Roughness map writes smoothness 0, which reads fully rough rather than mirror smooth.

Opacity is not written as a file of its own. Unity reads transparency from the base map’s alpha, which is where the set’s cutout goes. The panel lists the Opacity role under Not written with an Add Map button if you want the separate file anyway.

  1. Select oak_bark_Normal in the Project window and set Texture Type to Normal map. Apply.
  2. Select oak_bark_MetallicSmoothness, oak_bark_Occlusion, and oak_bark_Height and untick sRGB (Color Texture). Apply. Unity treats a texture as sRGB color unless its import settings say otherwise, and a data map read as color comes out wrong.
  3. In the material, assign oak_bark_BaseMap to Base Map, oak_bark_Normal to Normal Map, oak_bark_MetallicSmoothness to Metallic Map, oak_bark_Occlusion to Occlusion Map, and oak_bark_Height to Height Map.
  4. Set Smoothness Source to Metallic Alpha, which is URP’s default, so the smoothness written into the alpha lane is the one being read.

The panel’s Engine Import section repeats steps 1, 2, and 4.

Point Texture Folder at the folder and set Source to Unity Built-in / URP, or leave it on Auto.

  • MetallicSmoothness unpacks into Metallic, Ambient Occlusion, and Roughness, with the alpha lane inverted back on the way in.
  • Because the separate Occlusion file is also there, the separate file wins for Ambient Occlusion and the packed green lane is listed as Skipped.
  • When there is no Occlusion file and the green lane is empty, which is what a MetallicSmoothness written without occlusion carries, that lane is dropped rather than imported as a fully occluded map.
  • A cutout in the BaseMap alpha comes back as the set’s Opacity.
  • Occlusion and height read from the green channel, and Unity says so only in shader source. Unity’s Built-in manual pages for the Occlusion map and the Height map describe the maps as grayscale and name no channel. The separate grayscale Occlusion and Height files are the safe form, and they are what step 3 assigns. If you assign the packed file to the Occlusion slot instead, check the result.
  • Unity publishes no texture file naming convention. The names above are ArcBrush’s, chosen to read as Unity’s own material property names. Rename the rows to your project’s convention and save the result as a preset.