blockbench-pbr
SKILL.md
PBR Materials
Create and configure physically-based rendering materials with multiple texture channels for realistic rendering.
Usage
/blockbench-pbr <action> [args]
Actions:
create <name>- Create a new PBR materialconfigure <material>- Set material propertieschannel <material> <channel>- Assign texture to channellist- List all materialsexport <material>- Export texture_set.json
Prerequisites
- Blockbench must be running with the MCP plugin enabled
- PBR materials plugin may be required depending on format
Steps
Creating PBR Materials
- Create material using
mcp__blockbench__create_pbr_material:{ "name": "metal_surface", "channels": ["color", "normal", "mer"] }name: Material identifierchannels: Which PBR channels to enable
Configuring Materials
- Configure properties using
mcp__blockbench__configure_material:{ "material_uuid": "<uuid>", "metalness": 1.0, "roughness": 0.3, "emissive": 0.0, "subsurface_scattering": false }metalness: 0.0 (dielectric) to 1.0 (metal)roughness: 0.0 (smooth/shiny) to 1.0 (rough/matte)emissive: Emission intensitysubsurface_scattering: Enable SSS for skin/wax/etc.
Assigning Texture Channels
- Assign texture using
mcp__blockbench__assign_texture_channel:{ "material_uuid": "<material-uuid>", "channel": "normal", "texture_uuid": "<texture-uuid>" }
Managing Materials
-
List materials using
mcp__blockbench__list_materials:- Returns all PBR materials in the project
- Includes channel assignments
-
Get material info using
mcp__blockbench__get_material_info:material_uuid: Material to inspect- Returns full configuration
- Includes texture_set.json preview
Import/Export
-
Import texture set using
mcp__blockbench__import_texture_set:path: Path to texture_set.json- Imports Bedrock/RTX format materials
-
Save material config using
mcp__blockbench__save_material_config:material_uuid: Material to exportpath: Output path- Exports texture_set.json format
PBR Channels
| Channel | Description | Format |
|---|---|---|
| color | Base color/albedo | RGB |
| normal | Surface normals | RGB (tangent space) |
| mer | Metalness/Emissive/Roughness | RGB packed |
| metalness | Metallic property | Grayscale |
| roughness | Surface roughness | Grayscale |
| emissive | Light emission | RGB |
| heightmap | Displacement/parallax | Grayscale |
| ao | Ambient occlusion | Grayscale |
MER Channel Packing
The MER texture packs three properties into RGB:
- R: Metalness (0-255 maps to 0.0-1.0)
- G: Emissive (0-255 maps to 0.0-1.0)
- B: Roughness (0-255 maps to 0.0-1.0)
Common Material Presets
| Material | Metalness | Roughness | Notes |
|---|---|---|---|
| Metal | 1.0 | 0.3-0.5 | Reflective |
| Plastic | 0.0 | 0.4-0.6 | Slight sheen |
| Wood | 0.0 | 0.7-0.9 | Matte |
| Glass | 0.0 | 0.0-0.1 | Very smooth |
| Stone | 0.0 | 0.8-1.0 | Very rough |
| Skin | 0.0 | 0.5 | Enable SSS |
Example Workflow
User: Create a metallic machine material
1. Create PBR material "machine_metal" with channels [color, normal, mer]
2. Configure: metalness 1.0, roughness 0.4
3. Create/assign color texture with base metal color
4. Create/assign normal texture for surface detail
5. Create MER texture:
- R channel: 255 (full metalness)
- G channel: 0 (no emission)
- B channel: 102 (0.4 roughness)
6. Assign MER texture to mer channel
7. Export texture_set.json for Bedrock/RTX
Integration with Fabrica
For Hytale models, PBR is handled through shading modes:
- Use
fullbrightshading for emissive surfaces - Use
reflectiveshading for metallic surfaces - Standard PBR export is for Bedrock/RTX rendering
texture_set.json Format
{
"format_version": "1.16.100",
"minecraft:texture_set": {
"color": "machine_color",
"normal": "machine_normal",
"metalness_emissive_roughness": "machine_mer"
}
}