Working with 3D Files
Preview and catalog your 3D models with automatic texture loading
Supported Formats
| Format | Texture Handling |
|---|---|
| GLTF / GLB | Textures embedded or auto-resolved from relative paths |
| FBX | Extracts and renders embedded textures; also resolves external texture references from nearby directories |
| OBJ + MTL | Loads textures defined in the MTL file |
| OBJ (no MTL) | Auto-detects textures by name matching |
| DAE (Collada) | Resolves textures from relative paths |
| STL | No texture support (geometry only) |
| ABC (Alembic) | Limited support: basic mesh preview only, no animation |
| Blender | Support for blender utilising the blender-cli tool, extracts and previews |
Texture Structures
AssetHoard automatically searches for textures when loading 3D models. The search behaviour depends on the file format.
OBJ Files with MTL (Recommended)
Place the MTL file in the same directory as the OBJ with the same base name. The MTL file tells the viewer exactly which texture goes with which material.
my-model/├── chair.obj├── chair.mtl ← Same name as OBJ└── wood_diffuse.pngOBJ Files without MTL (Auto-Detection)
If no MTL file is present, AssetHoard searches for textures in these locations (in order):
- Same directory as the OBJ file
./textures/subdirectory../textures/sibling folder (common in asset packs)
asset-pack/├── source/│ └── model.obj└── textures/ ← Found via ../textures/├── diffuse.png└── normal.pngName Matching
When auto-detecting textures, they're matched to materials by name. For best results, name
your textures to match material names in the model. Common suffixes are automatically stripped: _colour, _color, _diffuse, _albedo, _basecolor, _d, _normal, _specular.
Example: A material named wood will match wood_colour.jpg or wood_diffuse.png.
If only one texture is found and no name matches, it will be applied to all materials as a fallback.
FBX Files
FBX files receive special handling for both embedded and external textures.
Embedded textures: AssetHoard automatically extracts textures embedded inside FBX binary files. These are cached locally and used for both thumbnail generation and 3D preview. No action is needed on your part — import the FBX and the textures are extracted automatically.
External textures: For FBX files that reference external texture files,
the same directory search applies as OBJ files: same directory, ./textures/, then ../textures/.
Supported naming conventions:
T_BaseColor/T_Normal(Unreal Engine style)_D/_N/_S(short suffixes)_Diffuse/_Normal/_Specular(long suffixes)- Standard PBR material property names (
base_color,albedo,diffuse)
Troubleshooting
Model appears gray or untextured:
- Check that textures are in the same folder or a
./textures/subfolder - Verify texture filenames roughly match material names
- For OBJ files, ensure the MTL file exists and references correct texture paths
Textures on wrong parts:
- The auto-detection couldn't match names correctly
- Create an MTL file that explicitly maps materials to textures
FBX textures not showing:
- Try reimporting the asset (right-click → Reimport) to extract embedded textures to cache
- If the FBX uses external textures, ensure they're in the same directory or a
./textures/subfolder - Check that texture names follow common conventions (e.g.,
T_BaseColor,_Diffuse,_D)