Export emissive/glowing textures properly in glTF/GLB files without needing Blender post-processing.
Blockbench can preview emissive/bloom effects, but the standard glTF export doesn't include emissive material properties. The typical workflow requires:
- Export from Blockbench
- Import into Blender
- Manually connect emissive textures to the Principled BSDF emission input
- Set emission strength
- Re-export from Blender
This plugin eliminates that entire Blender step.
- Two ways to define emissive textures:
- Set texture render mode to "Emissive" (original behavior)
- Use separate emissive textures with
_eor_emissivesuffix (e.g.,character_e.png)
- Configurable emission strength per texture
- Support for both ASCII (.gltf) and binary (.glb) formats
- Uses
KHR_materials_emissive_strengthextension for HDR values > 1.0 - Automatic texture pairing (e.g.,
character.png+character_e.png) - Zero dependencies - pure JavaScript
- Download
emissive_gltf_export.js - In Blockbench: File > Plugins > Load Plugin from File
- Select the downloaded file
Simply drag emissive_gltf_export.js into the Blockbench window.
- In Blockbench: File > Plugins > Load Plugin from URL
- Enter the raw GitHub URL to the .js file
-
Set Texture to Emissive Mode Right-click your texture → Render Mode → Emissive
-
Configure Emission Strength (Optional) Right-click the emissive texture → Set Emission Strength...
This allows you to have a different texture for emission vs base color - perfect for glow masks where only specific parts should emit light.
| Method 1 (Single Texture) | Method 2 (Separate Textures) |
|---|---|
| Entire texture glows | Only specific parts glow |
| Quick setup | More control |
| Good for fully emissive objects (lamps, screens) | Good for partial glow (eyes, buttons, trim) |
Your emissive texture (_e suffix) acts as a glow mask:
- Black pixels = No emission
- Colored pixels = Emit that color
- White pixels = Full emission
Example workflow:
- Duplicate your base texture
- Paint everything black except the parts you want to glow
- Keep or recolor the glowing parts (e.g., eyes, LED indicators)
- Save with
_esuffix
-
Name your textures with matching base names:
- Base texture:
character.png - Emissive texture:
character_e.pngorcharacter_emissive.png
- Base texture:
-
Import both textures into Blockbench The plugin will automatically pair them by name. Check the console (F12) for:
[Emissive glTF Export] Found emissive texture pair: character.png → character_e.png -
Configure Emission Strength (Optional) Right-click the
_e/_emissivetexture → Set Emission Strength... -
Export - The emissive texture is automatically embedded, even if not applied to any faces.
Supported suffixes: _e, _emissive, _emission, _glow
Note: You don't need to set render mode to "Emissive" when using the suffix method - the naming alone triggers the pairing.
1.0= Standard emission (default)> 1.0= Brighter glow (HDR, uses KHR extension)< 1.0= Dimmer glow
For .gltf (ASCII): File → Export → Export glTF Model
For .glb (Binary): File → Export → Export Emissive GLB
The plugin adds proper glTF 2.0 emissive material properties.
Single texture (same image for base color & emission):
{
"materials": [{
"pbrMetallicRoughness": {
"baseColorTexture": { "index": 0 }
},
"emissiveFactor": [1.0, 1.0, 1.0],
"emissiveTexture": { "index": 0 },
"extensions": {
"KHR_materials_emissive_strength": {
"emissiveStrength": 3.0
}
}
}]
}Separate emissive texture (different images):
{
"textures": [
{ "source": 0, "name": "character" },
{ "source": 1, "name": "character_e" }
],
"materials": [{
"pbrMetallicRoughness": {
"baseColorTexture": { "index": 0 }
},
"emissiveFactor": [1.0, 1.0, 1.0],
"emissiveTexture": { "index": 1 }
}]
}Blockbench: 4.8.0+ (Desktop & Web)
Tested Renderers:
- Blender (glTF importer)
- Three.js
- Babylon.js
- Unity (with glTF importer)
- Unreal Engine (with glTF importer)
- Godot
- Preview bloom in Blockbench is separate from export strength - the plugin only affects exported files.
- Emissive textures must share the same UV mapping as the base texture (they use the same
texCoord).
Check the console (F12) for pairing messages. If you don't see Found emissive texture pair:, verify:
- Base texture:
name.png(no suffix) - Emissive texture:
name_e.png(exact same base name + suffix) - Both textures are imported into the project
After exporting, check the console for:
[Emissive glTF Export] Added dedicated emissive texture: name_e.png (index: 1)
[Emissive glTF Export] Applied emissive to material 0 (name.png + name_e.png)
[Emissive glTF Export] GLB modified successfully
- Import the GLB into Blender
- Go to Shading tab
- Select the material - you should see:
- Base Color texture connected
- Emission texture connected (separate image)
- Emission strength already set
Issues and PRs welcome! This plugin was created to solve a common pain point in the Blockbench → Game Engine workflow.
MIT License - See LICENSE file.
Created with assistance from Claude AI for the Blockbench community.