Skip to content

Texture Detection

Asset Forge's texture scanner automatically identifies and groups PBR texture maps from your folders. This page explains how the detection works and how to customize it.

How Scanning Works

When you set a Texture Root and run Make Material Assets, the scanner:

  1. Traverses the root folder and its subfolders recursively.
  2. Identifies image files by their extension.
  3. Matches each image to a map type based on keywords in the filename or parent folder name.
  4. Groups images by their base name (the part before the map type suffix).
  5. Creates one material per group, connecting each map to the appropriate shader input.

Supported Map Types

Map Type Default Keywords Shader Input
Base Color basecolor, base_color, base-colour, base_colour, basecolour, albedo, diffuse, color, colour, col Base Color
Normal normalgl, normal_gl, normaldx, normal_dx, normal, nrm, nor Normal Map
Roughness roughness, rough, rgh Roughness
Metallic metalness, metallic, metal Metallic
Height displacement, height, bump, disp Bump / Height
Alpha opacity, alpha, mask Alpha

Naming Keywords

The scanner matches map types by looking for keywords in the filename. These keywords are fully customizable in the Texture Naming Keywords section of the panel.

Each map type has its own keyword list. Keywords are matched case-insensitively against the filename (without extension).

Folder Tails

Folder tail keywords identify parent folders that should be traversed into rather than treated as material names. Common examples: maps, textures, tex.

If your texture folders are structured like:

brick_wall/
├── maps/
│   ├── basecolor.png
│   ├── normal.png
│   └── roughness.png

The maps folder tail ensures the scanner looks inside maps/ and attributes the textures to brick_wall.

Customizing Keywords

To add or modify keywords:

  1. Expand Texture Naming Keywords in the Material Assets section.
  2. Edit the keyword field for the map type you want to change.
  3. Keywords are comma-separated.

Tip

Use Dry Run after changing keywords to verify the scanner detects your textures correctly.

UDIM Detection

When Detect UDIM Tiles is enabled, the scanner looks for numbered tile suffixes like 1001, 1002, 1003 in filenames. Tiles sharing the same base name are grouped into a single UDIM material.

A UDIM texture set might look like:

wall_basecolor.1001.png
wall_basecolor.1002.png
wall_basecolor.1003.png
wall_normal.1001.png
wall_normal.1002.png
wall_normal.1003.png

These would be grouped into one wall material with UDIM tile support, using a <UDIM> token path behind the scenes while keeping all detected tiles under one material asset.

Requirements Inference

Required maps are determined automatically:

  1. The scanner examines what map types exist across all texture sets in your root folder.
  2. If a map type appears consistently, it becomes required.
  3. Any texture set missing a required map is skipped.
  4. Base color is always required — a set without a base color map is never valid.

This means the requirements adapt to your texture library automatically. If all your sets include normal maps, normal maps become required. If only some do, they remain optional.

Combine Root + Overrides

When Combine Root + Overrides is enabled, required map types are merged from both the root scan and the enabled manual overrides. When disabled, overrides fully replace the root scan results for their map types.

Example

Combine enabled: Root detects base color + normal. Override adds roughness. All three become required.

Combine disabled: Root detects base color + normal. Override adds roughness. Only base color + roughness are required (root normals are replaced by the override scope).