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 | Auto-loads textures via embedded references |
| 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 |
Coming Soon: Blender Files
Native .blend file support is on our roadmap, but it's a challenging format to support.
Blender files use a custom compressed binary format that isn't publicly documented, which makes
reliable parsing difficult. We're actively working on it, but it's taking time to get right.
In the meantime, we recommend exporting your Blender models to glTF/GLB for the best experience in AssetHoard.
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, _d.
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.
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