Partage
  • Partager sur Facebook
  • Partager sur Twitter

ThreeJS : comment importer OBJLoader ?

    7 juillet 2020 à 0:13:59

    Bonjour.

    Je me suis mis à ThreeJS il y a quelques temps, pour afficher des objets en 3D dans une page Web.

    Il y a longtemps, j'avais utilisé un vieux script (obsolète) pour importer des fichiers json dans Threejs. Depuis, de nombreux "loaders" sont apparus permettant de charger d'autres formats. Ceux qui m'intéressent aujourd'hui sont les formats STL et OBJ. Alors j'ai tenté un programme pour importer des OBJ... Et j'ai plein d'erreurs.

    Alors j'ai tout supprimé et recommencé pas à pas. Tout d'abord : j'essaye d'importer le "loader", mais sans l'utiliser. J'ai suivi la doc officielle (et d'autres sites que j'ai trouvé à droite à gauche) :

    <!DOCTYPE html>
    <html lang="en">
    	<head>
    		<title>Programme</title>
    		<meta charset="utf-8">
    	</head>
    	<body>
    		<script  src="./sources/JS/three.min.js"></script>
    		<script>
    			import { OBJLoader } from './sources/JS/OBJLoader.js';
    		</script>
    	</body>
    </html>

    Et ça me met, dans la console, l'erreur suivante :

    Uncaught SyntaxError: Cannot use import statement outside a module

    J'ai cru comprendre qu'il s'agissait d'une histoire de "type=module". Je ne connaissais pas l'existence de "type" pour les scripts JS.

    En suivant les exemples que j'ai pu trouvé, j'ai alors tapé :

    <!DOCTYPE html>
    <html lang="en">
    	<head>
    		<title>Programme</title>
    		<meta charset="utf-8">
    	</head>
    	<body>
    		<script  src="./sources/JS/three.min.js"></script>
    		<script type="module">
    			import { OBJLoader } from './sources/JS/OBJLoader.js';
    		</script>
    	</body>
    </html>

    Et là, j'obtiens l'erreur : 

    GET http://RACINE_DE_MON_SITE/build/three.module.js net::ERR_ABORTED 404 (Not Found)

    Qu'est-ce que c'est que ce dossier "build" dont il parle ???

    Bref : je ne suis pas très doué, et les exemples que je trouve sur le net ne me permettent pas de trouver une solution (souvent, ce sont des exemples en JS, dénués de contexte HTML... Or, à mon niveau, j'ai besoin d'avoir ce contexte pour comprendre ce qui cloche).

    Pouvez-vous m'aider ?

    Merci d'avance.




    • Partager sur Facebook
    • Partager sur Twitter
      7 juillet 2020 à 0:26:40

      Bonsoir, je n'y connais pas grand chose en ThreeJS mais je pense que le fichier "OBJLoader.js" contient une requête vers ton fichier "three.min.js" mais il le cherche dans un dossier "build" car le développeur l'a inscrit ainsi. Essaye de créer un dossier "build" à la racine de ton site et d'y déplacer "three.min.js". N'oublie pas de modifier le chemin de "three.min.js" dans l'HTML une fois ceci fait.

      Bon code !

      -
      Edité par Kicraft 7 juillet 2020 à 0:27:34

      • Partager sur Facebook
      • Partager sur Twitter

      ThreeJS : comment importer OBJLoader ?

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown