Certains fichiers OBJ sont très mal adaptés à une utilisation sur le web et certaines étapes peuvent être nécessaires avant même d’envisager de les convertir vers un format glTF/GLB.
Installer objtools
objtools permet de modifier des fichiers très larges sans avoir à les charger intégralement en mémoire. Il est distribué pour Windows, MacOS et Linux.
NB: pour WSL, télécharger la release Linux.
Géo-référencement
Certains OBJ peuvent être géoréférencés. C’est à dire que les coordonnées des points sont données par rapport à un repère global — généralement Earth-Centered, Earth-Fixed.
Leur conversion dans des moteurs 3D vers un système de coordonnées en nombres à virgule flottante donne lieu à des imprécisions.
Si leur positionnement géographique ne nous intéresse pas, il suffit de les recentrer avant import et conversion:
objtools translate "/path/to/file.obj" -o "/path/to/output.obj"
Séparation par mesh
Un fichier Wavefront/OBJ peut contenir plusieurs objets nommés distincts (ligne: o [object name]). Dans le cas de fichiers très volumineux il peut être bénéfique de séparer ces objets pour en faciliter l’ouverture:
objtools split "/path/to/file.obj" --output-dir "./"
Réparation
Les fichiers OBJ sont particulièrement fragiles et il arrive très souvent que leur références soient cassées, les rendant inutilisables.
objtools peut scanner un fichier OBJ et réparer les erreurs courantes. Par exemple:
- chemins de fichiers absolus (
C:/Users/foo/texture.png ≠ texture.png) - Mauvais format d’image (
texture.bmp ≠ texture.png) - Casse inconsistente (
Texture.png ≠ texture.png)
Certaines de ces erreurs peuvent n’apparaître que dans certaines situations (eg: la casse…).