Applying PBR textures in Blender is a node job: each map must land in the right Principled BSDF socket with the right color space. This walkthrough is the setup you can repeat for wood, concrete, metal, or stone from Locker3d. If you need the theory first, read the complete PBR textures guide.
Step 1: Material and Shader Editor
Select the object. In Material Properties, create a material (or keep the existing one). Open a Shader Editor workspace. You should see a Principled BSDF connected to Material Output. For this exercise, start with a new material so you can inspect the connections without changing an existing shader graph. Apply scale on the mesh (Ctrl+A) before you judge texture size, or Mapping values will lie.
Step 2: Load one image node per map
Add an Image Texture node for albedo, one for roughness, one for normal, and one for metalness if the pack includes it. Optional: ambient occlusion and height. Load the files from a Locker3d download—typical names include albedo/basecolor, roughness, nrm/normal, metallic. Keep them in one folder per material so you can reuse the group. Do not plug a single JPEG into every socket.
Step 3: Color space, then connections
Set albedo to sRGB. Set roughness, normal, metalness, AO, and height to Non-Color. Connect albedo to Base Color. Connect roughness to Roughness. Connect metalness to Metallic. For the normal, add a Normal Map node: image Color → Normal Map Color, Normal Map Normal → Principled Normal. The tested starter below uses no AO or height map. Real displacement requires a compatible render/material setup and sufficient geometry; a normal map only changes shading. Keep optional maps disconnected until you can inspect their effect.
Step 4: Mapping, UVs, and scale
Add Texture Coordinate (UV) → Mapping → every Image Texture Vector. Use Mapping Scale to set real-world size: 1,1,1 with UVs that span 0–1 once means one texture tile per island. For floors, raise scale (or UV repeat) until plank or tile size matches a photo. Shared Mapping keeps albedo, roughness, and normal aligned; never scale only the color. If the mesh has no UVs, unwrap first or use generated/object coords as a temporary preview. Tiling issues are covered in how to tile textures without seams and UV unwrapping for PBR textures.
Step 5: Check under a real HDRI
Switch to Material Preview or Cycles with an HDRI. Plastic look: roughness is sRGB or too low and even. Dirty look: albedo includes baked shadows. Flat look: normal bypassed the Normal Map node. Pink: missing file path after moving folders. Metal that looks like gray plastic: metallic map not connected or still sRGB. Confirm metalness is near 0 on wood and stone. Then render a close crop of the hero surface before you light the whole room.
- Wood and stone: Metallic 0, roughness from the map.
- Painted metal: distinguish exposed metal from dielectric paint with an appropriate metallic mask; scratches do not make all painted areas metallic.
- Glass: transmission and IOR, not a glass albedo photo.
Where to get CC0 maps
Grab sets from the Locker3d catalog—wood, concrete, metal, stone. They are CC0; you can use them in client files without credit. License limits (you cannot claim exclusive ownership of the original scan) are in CC0 textures: what you can and cannot do. More Blender notes sit on the blog.
When the setup works, group it. Select the image nodes, Mapping, and Normal Map, then Ctrl+G, and expose Scale plus the image sockets. The next Locker3d material is a file swap, not a rebuild. Name the group with the texture name so you can find it in the outliner. If roughness looks inverted, the pack may be glossiness: use a Invert Color node on that map only, and leave a comment. Do not invert the normal as a first guess.
Frequently asked questions
Which color space should each PBR map use in Blender?
Albedo (Base Color) uses sRGB. Roughness, metalness, ambient occlusion, height, and normal use Non-Color. Wrong color space is the usual cause of plastic or dirty materials.
Why is my normal map too strong or inverted?
Put the image through a Normal Map node, not straight into the BSDF. Match OpenGL versus DirectX (green channel). Start Strength at 1.0 and fix UVs before lowering it.
Where can I get free maps to follow this setup?
Download CC0 packs from the Locker3d catalog. Use them in personal and commercial Blender work without attribution.
Check the tile before rendering
Use the seamless texture checker to inspect a repeated grid and a half-tile offset. Load the actual albedo or roughness map, turn boundary guides off, and check whether adjacent edges join. The image stays in your browser. A rendered material sphere is not a substitute for checking the map edges.
Then compare resolution and UV repeats with the texel density and texture memory calculator. Both tools help you inspect and plan; they do not repair a map or infer the physical size of a material.

Tested in Blender 5.0
Try a material we opened and rendered
Worn Planks in 1K: three maps, a Blender scene and an embedded GLB. Pick a direct download and inspect the exact files before building your scene.
Get the tested starterOriginal texture: Dimitrios Savva / Poly Haven, CC0. Demo scene and render: Locker3d.
A node graph you can compare with the actual Blender file
Checked in Blender 5.0 on 16 October 2026: the Worn Planks starter scene contains three packed 1024 × 1024 images. Its seven nodes have eight connections. The JPG is sRGB; roughness and the OpenGL normal are Non-Color. UV feeds all three image vectors, and the normal passes through a Tangent-space Normal Map node with Strength 1.0. Metallic is 0.
The 4.2 m floor has UV coordinates from 0 to 3 on both axes, giving three repeats of the source's approximately 1.4 m tile. There is no extra Mapping node in this file. Inspect the extracted node records and the .blend SHA-256, or follow the full practical walkthrough in Spanish. This 1K starter has no AO, height or displacement map. Compatibility with older Blender releases has not been verified.
For a structured next lesson, compare the free official PBR courses for Blender, Unreal Engine and Unity.