Skip to main content
Getly

Command menu

Jump to a page or search the catalog

How to use PBR textures in Blender, step by step

Turn a zip of PBR maps into a working Blender material: Node Wrangler setup, Non-Color maps, normal map direction, displacement and tiling, then export.

6 min read
1,187 words
How to use PBR textures in Blender, step by step

You bought or downloaded a PBR texture pack, unzipped it, and now there are five image files called something like wood_basecolor.png, wood_normal.png and wood_roughness.png. This tutorial turns them into a working material in Blender 4.x, fixes the two settings that most often make a material look wrong, and covers tiling and export. It takes about ten minutes the first time and under a minute after that.

A note on what you will usually find in a pack. We read the PBR Materials & Textures shelf on Getly, measured October 2026: 583 active listings, 93.8% delivered as a zip archive. Most descriptions name the base color, normal and roughness maps (roughness in 92.5%, normal in 91.8%) and a 2K resolution (92.3%); none mention ambient occlusion or height maps. One shop holds 91.8% of that shelf, so these shares mostly describe one seller's format. Packs elsewhere often add AO, height and metallic maps, and the steps below cover them all.

Step 1: unzip and check the maps

Extract the archive into a folder next to your .blend file, or into a texture library folder you keep. Then identify each map by its name:

MapCommon namesGoes intoColor space
Base coloralbedo, diffuse, color, basecolorBase ColorsRGB
Normalnormal, nrm, nor, normal_gl, normal_dxNormal (via Normal Map node)Non-Color
Roughnessroughness, roughRoughnessNon-Color
Metallicmetallic, metalness, metalMetallicNon-Color
Heightheight, displacement, dispMaterial Output DisplacementNon-Color
Ambient occlusionao, occlusionOptional, multiplied into base colorNon-Color

If you see a glossiness map instead of roughness, it is the inverse: plug it in through an Invert Color node. If a pack has both normal_gl and normal_dx, take the GL one for Blender (step 4 explains why).

Step 2: turn on Node Wrangler

Node Wrangler ships with Blender and does most of the wiring for you. Open Edit > Preferences > Add-ons, search for "Node Wrangler" and tick it. You only do this once.

Step 3: build the material in one shortcut

  1. Select your object and open the Shading workspace.
  2. Click New in the shader editor to create a material. You get a Principled BSDF connected to the Material Output.
  3. Click the Principled BSDF node to select it.
  4. Press Ctrl+Shift+T (Principled Texture Setup).
  5. In the file browser, select all the maps from the pack and confirm.

Node Wrangler reads the file names, creates an Image Texture node per map, connects each to the right input, adds a Normal Map node and a Displacement node where needed, and adds a shared Mapping node for scale. Check the result: every node should be connected to the input from the table above.

Step 4: fix color space and the normal map direction

These two settings cause most "my material looks wrong" moments.

Color space. Only the base color map is a picture of color. Every other map is data. Click each non-color Image Texture node and set Color Space to Non-Color. Node Wrangler usually does this, but files with unusual names slip through. A roughness map left on sRGB makes the surface look shinier or duller than it should.

Normal map direction. Normal maps come in two conventions. Blender uses OpenGL (green channel pointing up). Unreal and many game tools use DirectX (green pointing down). With a DirectX map in Blender, bumps look like dents and the lighting on grooves seems to come from the wrong side. Fix it by inverting the green channel:

  1. Between the normal Image Texture and the Normal Map node, add Separate Color (mode RGB).
  2. Run the G output through an Invert Color node (or a Math node set to Subtract, 1 minus G).
  3. Join R, the inverted G and B with Combine Color and feed that into the Normal Map node's Color input.

If the listing does not say which convention it uses, look at a rendered sphere: light should hit the top edges of raised details.

Step 5: height maps, bump or real displacement

A height map can do two different jobs.

  • Fake it with bump (works in Eevee and Cycles). Connect the height map through a Bump node into the Normal input, chained with your normal map. Cheap, no extra geometry, fine for small detail.
  • Real displacement (Cycles). Connect the height map through a Displacement node into the Material Output's Displacement socket. In Material Properties > Settings, set Displacement to Displacement and Bump or Displacement Only. The mesh needs enough geometry to move: add a Subdivision Surface modifier (Simple) with several levels. Start with the Displacement node's Scale around 0.1 and adjust; the default often pushes the surface far too much.

If your pack has no height map, skip this step. Most surfaces read well with normal and roughness alone.

Step 6: ambient occlusion and metallic

Cycles calculates occlusion itself, so an AO map is optional. In Eevee it can add depth: mix it into the base color with a Mix Color node set to Multiply, factor around 0.5 to 1. Do not plug AO into any Principled input.

For metals, connect the metallic map to Metallic. For non-metal materials such as wood or stone, leave Metallic at 0 even if there is no map.

Step 7: tiling and scale

PBR textures are usually seamless, so they repeat without visible edges. Control the size with the Mapping node Node Wrangler added: raise Scale X and Y to make the pattern smaller and repeat more often. Keep X and Y equal unless you want to stretch it.

If the object has no clean UV unwrap, use box projection: in each Image Texture node set Projection to Box, set Blend to about 0.2, and feed the Mapping node from the Object output of a Texture Coordinate node. This works well for walls, floors and crates. For organic shapes, unwrap properly with U > Smart UV Project in Edit Mode.

Watch texel density: a 2K texture stretched over a large wall will look blurry up close. Repeat it more, or use a higher resolution set for big surfaces.

Step 8: save, pack and export

  • Keep it portable. Use File > External Data > Make Paths Relative, or Pack Resources to store the images inside the .blend.
  • glTF/GLB (web, many engines): exports base color, metallic-roughness, normal and occlusion, and packs textures into a GLB. Height and procedural nodes do not export.
  • FBX: set Path Mode to Copy and turn on the embed textures button. Engines rebuild the material on import, so check normal map direction there too.
  • Game engines: Unity expects OpenGL-style normal maps; Unreal expects DirectX. Invert green when you move between them.

Quick troubleshooting

  • Material looks plastic: roughness on sRGB, or the roughness map not connected.
  • Grooves lit from the wrong side: DirectX normal map, invert green.
  • Visible seams: the texture is not seamless, or UVs have seams across the pattern; try box projection.
  • Surface explodes with displacement: lower the Displacement node Scale, check Midlevel is 0.5.

Ready-to-use sets are on the PBR Materials shelf. Before you buy, check the listing for the list of maps, the resolution and the normal map convention.

Ready to start selling?

Independent marketplace for digital creators. Keep 80–90% of every sale. Accept cards and stablecoins.