Common PBR mistakes are usually setup, not “bad textures.” The same CC0 pack can look like a photograph or like a 2004 game depending on color space, normal convention, and lighting. Use this as a checklist when a material feels wrong in Blender, Unreal, Unity, V-Ray, or Corona. Download a known-good set from the Locker3d library if you need a control sample.
Color space: the mistake that explains half of Reddit
Albedo is color. It uses a display-referred space (sRGB in Blender Image Texture nodes). Roughness, metalness, normal, AO, and height are data. They use Non-Color / Linear / Raw, depending on the app. If albedo is linear, wood looks dark and lifeless. If roughness is sRGB, the highlight shape is wrong and you will “fix” it with sliders forever. Check every node, not only the first one you added. Map roles: albedo, normal, and roughness. Blender hookup: apply PBR in Blender.
Roughness vs glossiness, and inverted maps
Metal/rough packs treat white as rough. Specular/gloss packs treat white as sharp. If a floor is a mirror when it should be oak, invert the roughness (or gloss) map. Do not invert albedo. Some previews are already inverted in the thumbnail; trust a chrome ball in your scene. Workflow: metalness vs specular.
Normals: missing node, wrong Y, or JPEG
In Blender, the image must go through a Normal Map node. Plugging RGB into the Normal socket treats vectors as color. In engines, use the normal import flag, not a generic color texture. DirectX vs OpenGL flips the green channel; a dent that should catch light from above will catch it from below. Article: DirectX vs OpenGL. Do not store hero normals as JPEG: texture formats.
Albedo that already contains light
Photographs of a wall at 4 p.m. are not albedo. Baked AO, sun patches, and saturated cavities fight your HDRI. The surface looks dirty twice. Use library albedo that is lighting-free, or paint out the lighting. Concrete and wood from Locker3d are authored as PBR maps, not holiday photos. Lighting should come from an HDRI: HDRI setup.
Metals, scale, and “more maps will fix it”
Metals need metalness near 1, a bright enough albedo (the tint of the reflection), low roughness for polish, and an environment with actual highlights. Metalness 0.4 “because it is dirty” makes oily plastic; put dirt in roughness and a dielectric layer instead. Tile scale is the other silent error: a 2 meter brick is uncanny even with perfect maps. Use Mapping scale or real-world size. Seams: tiling without seams.
8K will not fix gamma. Extra AO will not fix a missing HDRI. If the control spheres (chrome and 50% gray) look wrong, stop editing the wood. Beginner path: start here and first render.
Quick fix order
- Color space on every map.
- Normal Map node and Y convention.
- Roughness vs gloss invert.
- HDRI with real range, not a JPEG sky.
- Tile scale in meters.
- Then, and only then, swap the pack.
More troubleshooting and engine notes: blog. Free control textures: metal, stone, full catalog.
Frequently asked questions
Why do my PBR materials look too dark or washed out?
Wrong color space. Albedo in sRGB; data maps in non-color / linear.
Why does the normal map look inverted or dented the wrong way?
DirectX vs OpenGL Y, or the image plugged in as color without a Normal Map node.
Why does metal look like gray plastic?
Metalness not at 1, dark albedo, high roughness, no HDRI highlights, or mid-value metalness on “dirty metal.”