Skip to content

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:

text
emissive color = base color × emissive

This 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

text
RGB = color
A   = alpha

Metallic Map

text
metallic

Roughness Map

text
roughness

Emissive Map

text
emissive color

Use 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

text
RGB = color
A   = alpha

ORM Map

text
R = occlusion
G = roughness
B = metallic
A = unused

Foxel does not generate occlusion data, so the occlusion channel is written as white.

text
R = 1

Emissive Map

text
emissive color

Use 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

text
RGB = color
A   = alpha

Metallic Smoothness Map

text
R = metallic
A = smoothness

Foxel converts roughness into smoothness during export:

text
smoothness = 1 - roughness

Emissive Map

text
emissive color

Use 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

text
RGB = color
A   = alpha

Mask Map

text
R = metallic
G = occlusion
B = detail mask
A = smoothness

Foxel does not generate occlusion or detail mask data, so those channels are written as fixed values:

text
G = 1
B = 0

Smoothness is written as:

text
A = 1 - roughness

Emissive Map

text
emissive color

Use 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

text
RGB = color
A   = alpha

Metallic Roughness Map

text
G = roughness
B = metallic

The red and alpha channels of this packed map are not used for metallic or roughness data.

Emissive Map

text
emissive color

Use 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.