• 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 ?

Object Storage Arubacloud
+1 głos
859 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,510 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ź 804 wizyt
pytanie zadane 8 kwietnia 2021 w JavaScript przez Kubs Mądrala (5,190 p.)
+2 głosów
1 odpowiedź 173 wizyt
pytanie zadane 12 stycznia 2023 w JavaScript przez Czang Kai Shrek Obywatel (1,990 p.)
0 głosów
0 odpowiedzi 203 wizyt
pytanie zadane 5 sierpnia 2020 w JavaScript przez Bakkit Dyskutant (7,600 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...