MCPInstall

blender-pbr-materials

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.

Installs
94
Last 24h
+9
Trending rank
#9332
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/el4cteo/blender-skills --skill blender-pbr-materials
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads blender-pbr-materials automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

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")

  1. 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.
  2. 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.
  3. 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.
  4. Color spaces: Base Color and Emission use sRGB. Roughness, Metallic, Normal, AO, Height, Opacity and ORM use Non-Color. A wrong color space is the #1 bug (washed-out normals, wrong roughness).
  5. Specular: leave IOR 1.5 and Specular IOR Level 0.5 for almost all dielectrics. Change IOR only for known materials (water 1.33, glass 1.5, diamond 2.42).
  6. 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.
  7. 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.

Principled BSDF (5.2) quick map

Base Color, Metallic, Roughness, IOR, Alpha, Normal, Thin Wall (5.2: leaves/paper/fabric sheets without volume), Subsurface Weight/Radius/Scale (skin, wax; Scale in meters ≈ 0.005–0.02 for skin), Specular IOR Level, Specular Tint, Anisotropic, Transmission Weight (glass/liquids), Coat Weight/Roughness/Normal (car paint, varnish), Sheen Weight (cloth, velvet), Emission Color/Strength (strength in W/m²-ish units; 1–10 for screens, 50+ for bulbs), Thin Film Thickness/IOR (soap, oil, coated lenses), Diffuse Roughness.

Engine export rules

TargetMapsPackingNormal
glTF / web / GodotbaseColor(+alpha), metallicRoughness, normal, occlusion, emissiveglTF: R=AO G=Rough B=Metal (ORM)OpenGL
UnrealBaseColor, Normal, ORMR=AO G=Rough B=MetalDirectX (UE flips on import if the texture is marked)
Unity URP/HDRPBaseMap, Normal, MetallicSmoothness / HDRP MaskMapURP: R=Metal A=Smoothness (1-rough). HDRP Mask: R=Metal G=AO B=DetailMask A=SmoothnessOpenGL
Roblox SurfaceAppearanceColorMap(+alpha), NormalMap, MetalnessMap, RoughnessMap, EmissiveMaskContentseparate grayscale maps, no packingOpenGL, tangent space
  • Only image-texture → BSDF chains export. Procedural nodes, Mix nodes and math become nothing in engines, so bake them first (blender-texture-baking).
  • One material per texture set. Every extra material is an extra draw call (blender-game-optimization).
  • Power-of-two textures (512/1024/2048/4096). Use PNG/TGA for data maps, never JPEG for normals.

Alpha

mat.surface_render_method = "DITHERED" (cutout/alpha-clip, sorts correctly, good for foliage/hair cards) or "BLENDED" (true transparency, glass/UI). Connect Alpha. glTF exports CLIP/BLEND from the alpha setup. Prefer dithered/clip for games.

Displacement

Height map → Displacement node → Material Output Displacement. mat.displacement_method: BUMP (shading only, everywhere), BOTH/DISPLACEMENT (Cycles, needs dense or adaptively subdivided geometry: Subdivision modifier use_adaptive_subdivision). Scale is in meters; midlevel 0.5 for 8-bit, 0 for 32-bit EXR.

View transform (judge materials under the right one)

scene.view_settings.view_transform: AgX (default, photographic), Khronos PBR Neutral (what-you-see-is-the-albedo; use for asset/product review and glTF parity), Standard (UI/graphics/textures that must match pixels), ACES 1.3/2.0 (VFX pipelines). Never bake or author textures while looking through Filmic/AgX with an extreme "Look".

Procedural → texture

Procedural setups (noise/voronoi wear, curvature masks via Geometry > Pointiness (Cycles) or Ambient Occlusion node, edge wear via Bevel node normals) are fine for renders. For engines, bake them to the texture set (blender-texture-baking). Node Wrangler (bundled) Ctrl+Shift+T does the same as build_pbr_material.py, but needs the UI.

Gotchas

  • material.use_nodes is deprecated in 5.x. New materials already have Principled + Output.
  • mat.diffuse_color only affects the viewport (Solid mode/workbench), not renders or export.
  • Images loaded headless need image.colorspace_settings.name set before baking or export.
  • Shared texture images used by several materials: change the color space once, because it's per image.

FAQ

What does the blender-pbr-materials skill do?

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.

How do I install blender-pbr-materials?

Run npx skills add https://github.com/el4cteo/blender-skills --skill blender-pbr-materials in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/blender-pbr-materials/ (personal) or .claude/skills/blender-pbr-materials/ (project).

Which AI agents can use blender-pbr-materials?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is blender-pbr-materials safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains blender-pbr-materials?

It is published by el4cteo in el4cteo/blender-skills. It has 94 recorded installs.

More from el4cteo/blender-skills

View all →

blender-core

el4cteo/blender-skills

Foundation for any Blender 5.2+ task an agent drives - running bpy via MCP (live) or headless CLI, context overrides, locale-safe node lookup, enum discovery, 5.x API changes, verification. Use first for any Blender, bpy, .blend or 3D-asset request; routes to the specialized blender- skills.

Backend & APIs124 installs

blender-asset-qa

el4cteo/blender-skills

Open the skill to read its SKILL.md instructions.

Testing & QA110 installs

blender-animation

el4cteo/blender-skills

Animation in Blender 5.2 - slotted/layered actions and the channelbag API, Python keyframing, F-curves, game loops, NLA clips, pose library, mocap/BVH retargeting via constraints, baking control rigs to export skeletons, root motion, per-clip export. Use for any keyframe, action, NLA, mocap, or animation-export task.

Frontend & Design102 installs

blender-export-pipelines

el4cteo/blender-skills

Export from Blender 5.2 with verified presets - Roblox (FBX/glTF, cages, R15, SurfaceAppearance), Unity (FBX, Humanoid), Unreal (FBX skeletal, Nanite, UCX), Godot/web (GLB, meshopt/Draco, WebP), USD. Scale/axes, smoothing, tangents, leaf bones, clips, batch export, post-export verification. Use whenever an asset leaves Blender.

100 installs

blender-character-rigging

el4cteo/blender-skills

Character rigging in Blender 5.2 - Rigify metarig fit/generate, bone naming/roll/collections, DEF/MCH/control layers, IK/FK, robust skinning (heat + proxy fallback), weight-painting rules, correctives, engine game skeletons (Unity, Unreal, Roblox R15), rig validation and deformation stress tests. Use for armature, skinning or weights tasks.

Testing & QA96 installs

blender-geometry-nodes

el4cteo/blender-skills

Geometry Nodes in Blender 5.2 - fields, domains, attributes, instancing, zones (simulation/repeat/for-each), closures/bundles, lists, SDF grids, node tools, baking, plus a JSON-to-node-tree builder and socket inspector. Use for scattering, procedural assets/environments, parametric tools and modifier inputs.

93 installs

Popular other skills

View category →

hyperframes-cli

heygen-com/hyperframes

The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.

1.3M installs

triage

mattpocock/skills

Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.

1M installs

ask-matt

mattpocock/skills

Ask which skill or flow fits your situation. A router over the skills in this repo.

778.4K installs

to-questionnaire

mattpocock/skills

Turn a decision you can't fully answer into a questionnaire for someone else to fill in.

508.9K installs

wait-what

mattpocock/skills

Stop. That last message did not land: re-pitch it.

459.7K installs

loop-me

mattpocock/skills

Grill me about specs for the workflows I want to build, within this workspace.

447.9K installs