Loading-3D-models.html 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. <!DOCTYPE html>
  2. <html lang="fr">
  3. <head>
  4. <meta charset="utf-8">
  5. <base href="../../../" />
  6. <script src="page.js"></script>
  7. <link type="text/css" rel="stylesheet" href="page.css" />
  8. </head>
  9. <body>
  10. <h1>Importer des modèles 3D ([name])</h1>
  11. <p>
  12. Les modèles 3D sont disponibles dans des centaines de formats, chacun ayant des objectifs
  13. différents, des fonctionnalités assorties, et une complexité variable. Même si
  14. <a href="https://github.com/mrdoob/three.js/tree/dev/examples/jsm/loaders" target="_blank" rel="noopener">
  15. three.js fournit plusieurs loaders</a>, choisir le bon format et
  16. workflow vous fera gagner du temps et vous épargnera beaucoup de frustration par la suite. Certains formats sont
  17. difficiles à appréhender, inefficaces pour les exépriences en temps-réel, ou simplement
  18. pas entièrement supportés pour le moment.
  19. </p>
  20. <p>
  21. Ce guide vous fournit un workflow recommandé pour la plupart des utilisateurs, et des suggestions
  22. concernant quoi essayer si les choses ne se déroulent pas comme prévu.
  23. </p>
  24. <h2>Avant de commencer</h2>
  25. <p>
  26. Si vous n'êtes pas familier avec le fait de lancer un serveur local, commencez par
  27. [link:#manual/introduction/How-to-run-things-locally how to run things locally].
  28. Plusieurs erreurs communes concernant les modèles 3D peuvent-être évitées en hébergeant les fichiers
  29. correctement.
  30. </p>
  31. <h2>Workflow recommandé</h2>
  32. <p>
  33. Dans la mesure du possible, nous recommandons l'utilisation de glTF (GL Transmission Format). Les versions
  34. <small>.GLB</small> et <small>.GLTF</small> du format sont
  35. 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
  36. compact et rapide à transmettre. Les fonctionnalités inclusent sont les meshes, les matériaux,
  37. les textures, les skins, les squelettes, les morph targets, les animations, les lumières, et les
  38. caméras.
  39. </p>
  40. <p>
  41. Les fichiers glTF appartenant au domaine public sont disponibles sur des sites comme
  42. <a href="https://sketchfab.com/models?features=downloadable&sort_by=-likeCount&type=models" target="_blank" rel="noopener">
  43. Sketchfab</a>, différents outils incluent l'export de glTF:
  44. </p>
  45. <ul>
  46. <li><a href="https://www.blender.org/" target="_blank" rel="noopener">Blender</a> par the Blender Foundation</li>
  47. <li><a href="https://www.allegorithmic.com/products/substance-painter" target="_blank" rel="noopener">Substance Painter</a> par Allegorithmic</li>
  48. <li><a href="https://www.foundry.com/products/modo" target="_blank" rel="noopener">Modo</a> par Foundry</li>
  49. <li><a href="https://www.marmoset.co/toolbag/" target="_blank" rel="noopener">Toolbag</a> par Marmoset</li>
  50. <li><a href="https://www.sidefx.com/products/houdini/" target="_blank" rel="noopener">Houdini</a> par SideFX</li>
  51. <li><a href="https://labs.maxon.net/?p=3360" target="_blank" rel="noopener">Cinema 4D</a> par MAXON</li>
  52. <li><a href="https://github.com/KhronosGroup/COLLADA2GLTF" target="_blank" rel="noopener">COLLADA2GLTF</a> par the Khronos Group</li>
  53. <li><a href="https://github.com/facebookincubator/FBX2glTF" target="_blank" rel="noopener">FBX2GLTF</a> par Facebook</li>
  54. <li><a href="https://github.com/AnalyticalGraphicsInc/obj2gltf" target="_blank" rel="noopener">OBJ2GLTF</a> par Analytical Graphics Inc</li>
  55. <li>&hellip;et <a href="http://github.khronos.org/glTF-Project-Explorer/" target="_blank" rel="noopener">beaucoup d'autres</a></li>
  56. </ul>
  57. <p>
  58. Si votre outil de prédilection n'inclut pas le support des glTF, pensez à demander
  59. aux auteurs d'inclure l'export des glTF, ou postez sur
  60. <a href="https://github.com/KhronosGroup/glTF/issues/1051" target="_blank" rel="noopener">the glTF roadmap thread</a>.
  61. </p>
  62. <p>
  63. Quand glTF n'est pas utilisable, des formats populaires comme FBX, OBJ, ou COLLADA
  64. sont également disponibles et régulièrement maintenus.
  65. </p>
  66. <h2>Charger les modèles</h2>
  67. <p>
  68. Seulement quelques loaders (e.g. [page:ObjectLoader]) sont inclus par défaut dans
  69. three.js — les autres doivent être ajoutés individuellement à votre application.
  70. </p>
  71. <code>
  72. import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
  73. </code>
  74. <p>
  75. Une fois que vous avez importé un loader, vous pouvez ajouter un modèle à votre scène. La syntaxe varie selon
  76. les loaders — quand vous utilisez un autre format, jetez un oeil à la documentation de ce
  77. loader. Pour glTF, l'utilisation avec des scripts globaux doit-être:
  78. </p>
  79. <code>
  80. const loader = new GLTFLoader();
  81. loader.load( 'path/to/model.glb', function ( gltf ) {
  82. scene.add( gltf.scene );
  83. }, undefined, function ( error ) {
  84. console.error( error );
  85. } );
  86. </code>
  87. <p>
  88. Voir [page:GLTFLoader GLTFLoader documentation] pour plus de détails.
  89. </p>
  90. <h2>Dépannage</h2>
  91. <p>
  92. Vous avez passé des heures à modeler votre chef-d'oeuvre artisanal, vous le chargez sur
  93. la page web, et — oh non! 😭 Il est tordu, mal coloré, ou tout simplement porté-disparu.
  94. Commencez par ces étapes de dépannage:
  95. </p>
  96. <ol>
  97. <li>
  98. Vérifiez la console JavaScript à la recherche d'erreurs, et assurez-vous d'utiliser un callback
  99. `onError` à l'appel de `.load()` pour afficher le résultat.
  100. </li>
  101. <li>
  102. Visualisez le modèle dans une autre application. Pour glTF, des visualiseurs de type cliquez-glissez
  103. sont disponibles pour
  104. <a href="https://gltf-viewer.donmccurdy.com/" target="_blank" rel="noopener">three.js</a> et
  105. <a href="https://sandbox.babylonjs.com/" target="_blank" rel="noopener">babylon.js</a>. Si le modèle
  106. apparaît correctement dans une ou plusieurs autres applications,
  107. <a href="https://github.com/mrdoob/three.js/issues/new" target="_blank" rel="noopener">signalez une erreur auprès de three.js</a>.
  108. Si le modèle ne peut être visualisé dans n'importe quelle application, nous encourageons fortement
  109. le signalement d'un bug auprès de l'application avec laquelle vous avez réalisé le modèle 3D.
  110. </li>
  111. <li>
  112. Essayez de divisier ou de multiplier la taille du modèle par un facteur de 1000. Plusieurs modèles sont mis à
  113. l'échelles différemment, et les gros modèles peuvent ne pas apparaître si la caméra est
  114. à l'intérieur du modèle.
  115. </li>
  116. <li>
  117. Essayez d'ajouter et de positionner une source de lumière. Le modèle peut-être caché dans le noir.
  118. </li>
  119. <li>
  120. Cherchez des requêtes concernant des textures erronnées dans votre onglet réseau, comme
  121. `"C:\\Path\To\Model\texture.jpg"`. Utilisez des chemins relatifs menant à votre
  122. modèle à la place, comme `images/texture.jpg` — cela peut nécessiter
  123. la modification du fichier du modèle dans un éditeur de texte.
  124. </li>
  125. </ol>
  126. <h2>Demander de l'aide</h2>
  127. <p>
  128. Si vous avez effectué le processus de dépannage ci-dessus et que votre modèle
  129. ne fonctionne toujours pas, utiliser la bonne approche pour demander de l'aide vous mènera
  130. plus rapidement à la solution. Postez une question sur le
  131. <a href="https://discourse.threejs.org/" target="_blank" rel="noopener">forum three.js</a> et, incluez dès que possible,
  132. votre modèle (ou un modèle plus simple avec le même problème) dans n'importe quel format
  133. qui vous est disponible. Incluez sufisamment d'informations pour que quelqu'un puisse reproduire
  134. ce problème rapidement — idéalement, une démo live.
  135. </p>
  136. </body>
  137. </html>