
Blender Pbr Materials
Physically based materials in Blender 5.2 - metal/roughness rules, Principled BSDF...
Install
npx skills add EL4CTEO/blender-skills --skill blender-pbr-materials -g -a claude-code -y- Repository
- EL4CTEO/blender-skills651
- Category
- Engineering
- Updated
- 5d ago
- License
- MIT
- Context cost
- Lightabout 1,347 tokens
- Runs scripts
- Yes, review before use
What it does
Physically based materials in Blender 5.2 - metal/roughness rules, Principled BSDF inputs, color spaces (sRGB vs Non-Color), measured albedo/F0 values, texture-set auto-wiring, ORM channel packing, DirectX vs OpenGL normals, alpha modes, displacement, view transforms (AgX, Khronos PBR Neutral), engine-ready material rules. Use when creating, fixing, or exporting materials and textures.
PBR Materials
The execution model is in blender-core. Measured values are in references/pbr-values.md.
Fast paths
- Texture set → material:
scripts/build_pbr_material.py -- --name M_Crate --textures //tex/crate --objects SM_Crate. It detects maps by filename (Poly Haven, ambientCG, Substance, UE suffixes), sets color spaces, splits ORM, flips DirectX normals, and routes AO to glTF. - Solid physically-plausible material:
--preset gold|iron|plastic|rubber|wood|glass|skin|...with an optional--color R G B(sRGB).
The rules (violations are what make renders look "CG")
- Metallic is binary: 0 (dielectric) or 1 (raw metal). Use in-between values only on transition pixels (dust or rust edges on metal). Painted metal counts as dielectric.
- Base color = albedo with no lighting: no baked shadows/AO/highlights. Dielectric range is sRGB ~30, 240 (linear 0.012, 0.87): charcoal ≈ 50, fresh snow ≈ 240. Metals: base color = F0 reflectance, sRGB 180, 255, never dark.
- Roughness carries the realism. Break it up with grunge, smudges and wear. A constant roughness value looks fake; vary it ±0.1, 0.2 across a surface.
- Color spaces: Base Color and Emission use
sRGB. Roughness, Metallic, Normal, AO, Height, Opacity and ORM useNon-Color. A wrong color space is the #1 bug (washed-out normals, wrong roughness). - Specular: leave
IOR1.5 andSpecular IOR Level0.5 for almost all dielectrics. Change IOR only for known materials (water 1.33, glass 1.5, diamond 2.42). - Normal maps: Blender, glTF, Unity and Roblox use OpenGL (Y+). Unreal and Substance's DirectX preset use DirectX (Y-), so flip G when converting. The bake and the target must use the same tangent basis (MikkTSpace) and the same triangulation.
- AO: the Principled BSDF has no AO input. For engines, ship AO in the ORM red channel. For Cycles renders, don't multiply AO into base color, because the renderer computes occlusion.
