• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak załadować plik obj do THREE.js ?

Cloud VPS
+1 głos
1,519 wizyt
pytanie zadane 1 kwietnia 2021 w JavaScript przez Kubs Mądrala (5,190 p.)
edycja 1 kwietnia 2021 przez Kubs

Witajcie,

mam już trochę kodu (kamera, światło, itp.) i wszystko działa. Gdy chcę wyświetlić obj pojawia się błąd 'Uncaught TypeError: THREE.OBJLoader is not a constructor'

const loader = new THREE.OBJLoader();
loader.load('image.obj');

scene.add(loader);

 

Jak dodać konstruktor by obraz obj pojawił się na ekranie?

 

 

komentarz 1 kwietnia 2021 przez Tomek Sochacki Ekspert (227,490 p.)
Nie znam tej libki, więc w myśl zasady "nie znam się to się wypowiem" :) zapytam - czy na pewno to powinno być wołane na obiekcie THREE? na szybko w dokumentacji widzę nieco inaczej: https://threejs.org/docs/#examples/en/loaders/OBJLoader

Ale jak pisałem nie pracowałem z tą libką, więc to tylko sugestia.
komentarz 1 kwietnia 2021 przez Kubs Mądrala (5,190 p.)

Też tak próbowałem, ale wtedy mam błąd:

Uncaught ReferenceError: OBJLoader is not defined

2 odpowiedzi

+1 głos
odpowiedź 1 kwietnia 2021 przez ScriptyChris Mędrzec (190,190 p.)

Czy konstruktor OBJLoader to nie jest aby globalna zmienna? Spróbuj po prostu const loader = new OBJLoader();

https://threejs.org/docs/index.html?q=objloader#examples/en/loaders/OBJLoader

komentarz 6 kwietnia 2021 przez Kubs Mądrala (5,190 p.)

Gdy wyrzucam tą linijkę:

import { OBJLoader } from './jsm/loaders/OBJLoader.js';

to pojawia mi się bryła którą stworzyłem wcześniej i wszystko gra. Ale chodzi przecież o to, żeby załadować własny plik obj. Mam go podłączonego, ale nie działa.

komentarz 6 kwietnia 2021 przez ScriptyChris Mędrzec (190,190 p.)

Coś mieszasz w tym kodzie. :) Powyższy kod zadziała, gdy skrypt jest modułem. Jeśli nie potrzebujesz go jako moduł, to możesz po prostu użyć drugiego sposobu i tyle.

 Ale chodzi przecież o to, żeby załadować własny plik obj. Mam go podłączonego, ale nie działa.

Zapewne musisz ten plik serwować z backendu, bo ta biblioteka używa Ajaxa do pobierania plików. W konsoli powinien być jakiś błąd odnośnie nieudanego pobrania, ale inny niż związany z modułem (skoro i tak usunąłeś kod importujący).

komentarz 6 kwietnia 2021 przez Kubs Mądrala (5,190 p.)
<script type="module" src="https://unpkg.com/three@0.126.0/examples/js/loaders/OBJLoader.js"></script>

oraz main.js

const loader = new THREE.OBJLoader();
loader.load('image.obj');

 

Błąd:

Uncaught TypeError: THREE.OBJLoader is not a constructor

komentarz 6 kwietnia 2021 przez ScriptyChris Mędrzec (190,190 p.)

Ten skrypt nie jest modułem, więc nie ładuj go jako takowy - tłumaczyłem to kilka komentarzy wyżej. Podpięcia w taki sposób powinny działać, tylko kwestia przekazania prawidłowego URL-a modelu jako parametru do metody loader.load.

komentarz 6 kwietnia 2021 przez Kubs Mądrala (5,190 p.)

Niby nie ma błędu, ale dalej nie widać obrazu obj. Stwierdziłem, że wyrzucę kod związany z pokazaniem cube, bo może on przesłania ten obraz obj.

No to teraz znowu mam błąd

three.js:6215 THREE.Object3D.add: object not an instance of THREE.Object3D. OBJLoader

 

0 głosów
odpowiedź 1 kwietnia 2021 przez lapa19904 Stary wyjadacz (11,560 p.)
Wysłałem Ci pm z linkiem od swojego repo gdzie to jest ogarnięte. Mebel który ma różne tekstury na rożnych ścianach bryły. Resztę proszę o wybaczanie ale nie chcę udostępniać publicznie tego konkretnego repo i mam ku temu swoje powody :)
komentarz 1 kwietnia 2021 przez Kubs Mądrala (5,190 p.)
Dziękuję Ci serdecznie.

Podobne pytania

0 głosów
1 odpowiedź 1,928 wizyt
pytanie zadane 8 kwietnia 2021 w JavaScript przez Kubs Mądrala (5,190 p.)
+2 głosów
1 odpowiedź 293 wizyt
pytanie zadane 12 stycznia 2023 w JavaScript przez Czang Kai Shrek Obywatel (1,990 p.)
0 głosów
0 odpowiedzi 242 wizyt
pytanie zadane 5 sierpnia 2020 w JavaScript przez Bakkit Dyskutant (7,600 p.)

93,463 zapytań

142,459 odpowiedzi

322,727 komentarzy

62,840 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...