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

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

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...