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
mcpblockbenchcreatepbrmaterial:
``json { "name": "metal_surface", "channels": ["color", "normal", "mer"] } ` - name: Material identifier - channels`: Which PBR channels to enable
Configuring Materials
- Configure properties using
mcpblockbenchconfigure_material:
``json { "materialuuid": "<uuid>", "metalness": 1.0, "roughness": 0.3, "emissive": 0.0, "subsurfacescattering": false } ` - metalness: 0.0 (dielectric) to 1.0 (metal) - roughness: 0.0 (smooth/shiny) to 1.0 (rough/matte) - emissive: Emission intensity - subsurface_scattering`: Enable SSS for skin/wax/etc.
Assigning Texture Channels
- Assign texture using
mcpblockbenchassigntexturechannel:
``json { "materialuuid": "<material-uuid>", "channel": "normal", "textureuuid": "<texture-uuid>" } ``
Managing Materials
- List materials using
mcpblockbenchlist_materials:
- Returns all PBR materials in the project - Includes channel assignments
- Get material info using
mcpblockbenchgetmaterialinfo:
- materialuuid: Material to inspect - Returns full configuration - Includes textureset.json preview
Import/Export
- Import texture set using
mcpblockbenchimporttextureset:
- path: Path to texture_set.json - Imports Bedrock/RTX format materials
- Save material config using
mcpblockbenchsavematerialconfig:
- materialuuid: Material to export - path: Output path - Exports textureset.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"
}
}