Export PBR Maps
Foxel can export PBR maps from voxel color and material data.
The exact files and channel packing depend on the selected Texture Set Layout, so the goal of this tutorial is to make the exported output predictable.
Why This Matters
PBR export is easier to use when you know what Foxel writes to each file.
The important questions are:
- Is surface data exported as textures?
- Are PBR maps generated?
- Which texture layout is selected?
- Which channels are packed into which maps?
- Should the exported map be imported as color data or numeric data?
Required Settings
To export PBR maps, three settings are especially important:
- Encoding
- Texture Set Layout
- Generate PBR Maps
Encoding
Use Texture when you want color and material data stored in texture maps.
This is the correct encoding for texture-based PBR export.
If you use Vertex Color, color is stored per vertex and PBR material data is not included.
Texture Set Layout
Texture Set Layout defines how generated texture maps are written and packed.
Different engines expect different channel layouts. This setting controls where values such as color, alpha, metallic, roughness, smoothness, and emissive data are stored.
Generate PBR Maps
Generate PBR Maps exports additional maps for material data such as:
- Metallic
- Roughness
- Emissive
The exact output depends on the selected Texture Set Layout.
Exported Surface Channels
Foxel can encode the following surface channels into exported maps:
- Color
- Alpha
- Metallic
- Roughness
- Emissive
Some layouts write these channels into separate maps.
Other layouts pack several values into different channels of the same texture.
Color Maps And Data Maps
Exported maps fall into two categories: color maps and data maps.
This distinction matters because they should usually be imported differently in the target application.
Color Maps
Color maps store visible color information.
They should usually be imported as sRGB or color textures.
Examples:
- Base Color Map
- Emissive Map
Data Maps
Data maps store numeric material values.
They should usually be imported with sRGB disabled.
Examples:
- Metallic Map
- Roughness Map
- ORM Map
- Mask Map
- Metallic Smoothness Map
- Metallic Roughness Map
Packed material maps are data maps, even when they look like colored images in an image viewer.
Emissive Map
The Emissive Map stores the final emission color.
Foxel calculates it like this:
emissive color = base color × emissiveThis means emissive voxels emit their own color.
For example:
- A red emissive voxel exports red emission.
- A blue emissive voxel exports blue emission.
- A white emissive voxel exports white emission.
Texture Set Layouts
The selected Texture Set Layout controls which files are written and how their channels are packed.
Generic PBR
Generic PBR writes separate maps.
Base Color Map
RGB = color
A = alphaMetallic Map
metallicRoughness Map
roughnessEmissive Map
emissive colorUse this layout when you want simple separate maps, or when the target application does not require a packed engine-specific format.
Unreal / Godot ORM
Unreal / Godot ORM writes roughness and metallic into an ORM-style packed map.
Base Color Map
RGB = color
A = alphaORM Map
R = occlusion
G = roughness
B = metallic
A = unusedFoxel does not generate occlusion data, so the occlusion channel is written as white.
R = 1Emissive Map
emissive colorUse this layout for workflows that expect ORM-style packing.
Unity Built-In / URP
Unity Built-In / URP writes metallic and smoothness in a Unity-style format.
Base Map
RGB = color
A = alphaMetallic Smoothness Map
R = metallic
A = smoothnessFoxel converts roughness into smoothness during export:
smoothness = 1 - roughnessEmissive Map
emissive colorUse this layout for Unity Built-in Render Pipeline or URP workflows that expect metallic and smoothness data.
Unity HDRP Mask Map
Unity HDRP Mask Map writes HDRP-style packed material data.
Base Color Map
RGB = color
A = alphaMask Map
R = metallic
G = occlusion
B = detail mask
A = smoothnessFoxel does not generate occlusion or detail mask data, so those channels are written as fixed values:
G = 1
B = 0Smoothness is written as:
A = 1 - roughnessEmissive Map
emissive colorUse this layout for Unity HDRP workflows that expect a mask map.
glTF Metallic-Roughness
glTF Metallic-Roughness writes metallic and roughness in a glTF-style packed texture.
Base Color Map
RGB = color
A = alphaMetallic Roughness Map
G = roughness
B = metallicThe red and alpha channels of this packed map are not used for metallic or roughness data.
Emissive Map
emissive colorUse this layout when exporting to a glTF-style metallic-roughness workflow.
What To Remember
- Set Encoding to Texture for texture-based PBR export.
- Enable Generate PBR Maps when you want metallic, roughness, and emissive outputs.
- Texture Set Layout controls how the maps are packed.
- Base Color and Emissive are color maps.
- Packed PBR maps are data maps.
- Data maps should usually be imported with sRGB disabled.
- Some layouts convert roughness to smoothness depending on the target format.