Les modèles 3D sont disponibles dans des centaines de formats, chacun ayant des objectifs différents, des fonctionnalités assorties, et une complexité variable. Même si three.js fournit plusieurs loaders, choisir le bon format et workflow vous fera gagner du temps et vous épargnera beaucoup de frustration par la suite. Certains formats sont difficiles à appréhender, inefficaces pour les exépriences en temps-réel, ou simplement pas entièrement supportés pour le moment.
Ce guide vous fournit un workflow recommandé pour la plupart des utilisateurs, et des suggestions concernant quoi essayer si les choses ne se déroulent pas comme prévu.
Si vous n'êtes pas familier avec le fait de lancer un serveur local, commencez par [link:#manual/introduction/How-to-run-things-locally how to run things locally]. Plusieurs erreurs communes concernant les modèles 3D peuvent-être évitées en hébergeant les fichiers correctement.
Dans la mesure du possible, nous recommandons l'utilisation de glTF (GL Transmission Format). Les versions .GLB et .GLTF du format sont bien supportées. Étant-donné que glTF se concentre sur la réduction du temps d'exécution du chargement des modèles, il est compact et rapide à transmettre. Les fonctionnalités inclusent sont les meshes, les matériaux, les textures, les skins, les squelettes, les morph targets, les animations, les lumières, et les caméras.
Les fichiers glTF appartenant au domaine public sont disponibles sur des sites comme Sketchfab, différents outils incluent l'export de glTF:
Si votre outil de prédilection n'inclut pas le support des glTF, pensez à demander aux auteurs d'inclure l'export des glTF, ou postez sur the glTF roadmap thread.
Quand glTF n'est pas utilisable, des formats populaires comme FBX, OBJ, ou COLLADA sont également disponibles et régulièrement maintenus.
Seulement quelques loaders (e.g. [page:ObjectLoader]) sont inclus par défaut dans three.js — les autres doivent être ajoutés individuellement à votre application.
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
Une fois que vous avez importé un loader, vous pouvez ajouter un modèle à votre scène. La syntaxe varie selon les loaders — quand vous utilisez un autre format, jetez un oeil à la documentation de ce loader. Pour glTF, l'utilisation avec des scripts globaux doit-être:
const loader = new GLTFLoader();
loader.load( 'path/to/model.glb', function ( gltf ) {
scene.add( gltf.scene );
}, undefined, function ( error ) {
console.error( error );
} );
Voir [page:GLTFLoader GLTFLoader documentation] pour plus de détails.
Vous avez passé des heures à modeler votre chef-d'oeuvre artisanal, vous le chargez sur la page web, et — oh non! 😭 Il est tordu, mal coloré, ou tout simplement porté-disparu. Commencez par ces étapes de dépannage:
Si vous avez effectué le processus de dépannage ci-dessus et que votre modèle ne fonctionne toujours pas, utiliser la bonne approche pour demander de l'aide vous mènera plus rapidement à la solution. Postez une question sur le forum three.js et, incluez dès que possible, votre modèle (ou un modèle plus simple avec le même problème) dans n'importe quel format qui vous est disponible. Incluez sufisamment d'informations pour que quelqu'un puisse reproduire ce problème rapidement — idéalement, une démo live.