Skip to content

Export Textures for Blender

This guide covers the Blender destination on Export Texture. The files are written for Blender’s Principled BSDF, under the names that Node Wrangler’s Principled Texture Setup already looks for. With the Principled BSDF selected, one shortcut loads every file and wires it to the right input.

SettingValue
DestinationBlender
Filename Template{name}_{channel}
Normal ConventionOpenGL

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_base_color.pngBase Color in RGBPNG 8-bitColor
oak_bark_normal.pngNormalPNG 16-bitPacked normal, OpenGL
oak_bark_roughness.pngRoughnessPNG 16-bitLinear data
oak_bark_metallic.pngMetallicPNG 16-bitLinear data
oak_bark_ao.pngAmbient OcclusionPNG 16-bitLinear data
oak_bark_height.pngHeightPNG 16-bit, or EXR 16-bit (half) for a height outside 0 to 1Linear data
oak_bark_opacity.pngOpacity, the set’s cutoutPNG 16-bitLinear data
oak_bark_emissive.pngEmissivePNG 8-bitColor

Nothing is packed, and every role has a file of its own.

A cutout always goes to oak_bark_opacity.png, never into the Base Color’s alpha: Node Wrangler wires the Principled BSDF’s Alpha input from a file of its own, so an alpha cutout would never reach the shader. The ArcBrush destination writes the same eight names and uses the same opacity file by default, but its Base Color file also declares an alpha lane, which Blender’s does not.

  1. Turn on Node Wrangler once. It ships with Blender but starts off. Open Edit > Preferences > Add-ons, search for Node Wrangler, and tick its checkbox. You do this once per Blender install.
  2. Wire the maps. In the Shader Editor, select the material’s Principled BSDF node, press Ctrl+Shift+T (Principled Texture Setup), and pick every file the export wrote. Node Wrangler matches each file to an input by its name, sets every data map to Non-Color, puts a Normal Map node in front of the normal, and wires the height through a Displacement node into the Material Output.
  3. Decide what to do with Ambient Occlusion. The Principled BSDF has no occlusion input, so Node Wrangler loads oak_bark_ao.png as Non-Color and leaves it unwired. To use it, add a Mix Color node set to Multiply between the Base Color texture and the AO texture, and feed its result into Base Color. Otherwise delete the node.
  4. Check the Displacement node. Its Midlevel starts at 0.5, which is right for the ordinary 0 to 1 height this destination writes. Set it to 0 if you exported Height to a float container that holds a signed height. Scale sets how far the surface moves. It starts at 0.01, so raise it to the real depth of the relief.
  5. Turn on true displacement if you want it. Until you do, the Displacement node only bumps the shading. In the material’s Settings panel, change Displacement from its default, Bump Only, to Displacement and Bump, which works in both EEVEE and Cycles. Displacement Only works in Cycles only. The mesh also needs enough subdivision to have vertices to move.

The panel’s Engine Import section carries a short version of these steps.

Node Wrangler wires oak_bark_opacity.png to the Principled BSDF’s Alpha input. In Blender 4.2 and later that is all it takes. Cycles always reads Alpha, and EEVEE’s default Render Method, Dithered, draws it.

Texture Folder never lists Blender as a Source, and Source Auto never considers it, because its eight names are the same ones the ArcBrush destination writes. Point Texture Folder at the folder and leave Source on Auto, or pick ArcBrush. Either way the line under the combo reads Auto detected ArcBrush: 8 of 8 file names match. Every role comes back, including the cutout in oak_bark_opacity.png, which returns as the set’s Opacity.

  • Blender has no file naming convention of its own. These names follow the tags Node Wrangler matches by default: base_color for Base Color, height for Displacement, opacity for Alpha, and so on. The tags can be edited under Node Wrangler’s add-on preferences, so a Blender whose tags were changed may not match every file. Rename the rows on Export Texture to match, and save the result as a preset.
  • Pick every file at once. Node Wrangler ignores the part of the name that all the picked files share, which is how oak_bark is kept from matching anything. With only one file picked, nothing is removed, so an asset name containing a tag word can send that file to the wrong input. A lone metal_plate_roughness.png is wired to Metallic as well as Roughness.
  • add_principled_setup.py (Blender source): what Principled Texture Setup wires, including the Non-Color maps, the Normal Map node, the Displacement node, and the unwired Ambient Occlusion.
  • preferences.py (Blender source): Node Wrangler’s default tags for each input.
  • paths.py (Blender source): how a file name is split into tags and the shared prefix removed.