Motive
Próbuję utworzyć małą aplikację demonstracyjną przy użyciu WebGL. Zdecydowałem się użyć SceneJS, ponieważ wydawało się to łatwą strukturą i byłoby więcej niż wystarczające do tego celu.Konwertuj model 3D na SceneJS JSON, w tym teksturę
Pobrałem kilka modeli .blend (między innymi Amy Rose) i wyeksportowałem je jako plik Collada (.dae) za pomocą Blendera. Potem użyłem scenejs-pycollada, aby przekonwertować je na model json.
Właśnie spędziłem kilka godzin, aby konwerter scenejs-pycollada zadziałał. Najwyraźniej uzyskanie tych zależności Pythona do pracy w systemie Windows nie jest takie proste, jeśli nigdy wcześniej nie korzystałeś z Pythona. ;)
Problem
Ale teraz utknąłem (znowu). Mój problem polega na tym, że modele nie mają żadnych tekstur ani materiałów.
Użyłem Seymour Plane Example SceneJS. Model, który skonwertowałem, jest ledwo widoczny. Jest czarny i nie reaguje na oświetlenie sceny. Jeśli załaduję samolot i model razem, widzę, że model jest załadowany, ponieważ jego ręce i nogi wystają z samolotu.
Teraz poszedłem za kilkoma tutorialami, które pozwoliły mi wyeksportować teksturę jako obraz PNG. Następnie zmodyfikowałem nazwę pliku tekstury w modelu JSON, aby pasowała do nazwy pliku, ale to nie pomaga.
Mam nadzieję, że ktoś może mi pomóc znaleźć sposób na eksport modeli Blendera (lub innych popularnych modeli 3D) do formatu JSON używanego przez SceneJS, w tym tekstur.
Każda inna metoda ładowania modeli w SceneJS będzie działać tak długo, jak to będzie działać.
Jeśli ktoś ma link do darmowych plików do pobrania z modelami JSON ciała/figury, to na razie by to pomogło, ale wolę dowiedzieć się, jak to działa. :)
Używam 64bit
- Windows 7 Home Premium
- Python 2.7 (Windows 32bit)
wybrałem wersję 32 bitową, ponieważ pozornie lepsze wsparcie dla bibliotek oraz więcej dostępnych instalatorów. Na początku pomieszałem 32- i 64-bitowe i sprawiło mi to kłopot, ale teraz wszystko wydaje się działać (z wyjątkiem tekstur). - Blender 2.59
- SceneJS 0.8.0
Mój workflow
w Blenderze eksportować modele do Collada (* .dae) plików, a następnie konwertować je do surowego JSON za pomocą scenejs- pycollada. Daje mi to plik JSON z dwoma obiektami. Pierwsza wydaje się być sceną, a druga modelem. Zatrzymuję drugi i umieszczam go w zmiennej JavaScript używanej w kodzie przykładu SceneJS. Model kończy się właściwościami , "type": "library", "parent": "Scene"
, które muszę usunąć z kodu, aby w ogóle się załadować.
Dziękujemy! Wygląda na to, że działa z twoją wersją scenejs-pycollada i SceneJS 2.0. Nie trzeba też rekompilować niczego, więc to dobrze. ;) Nie obwiniam zbytnio facetów Numpy, to była wielka wina z instalacji niekompatybilnych wersji różnych bibliotek. W tej chwili próbuję GLGE, który ktoś polecił. (ładuje pliki .dae bez ich konwertowania). Na razie muszę sprawić, żeby moje demo działało, ale mam nadzieję, że wkrótce znajdę czas na ponowne zbadanie SceneJS. Dzięki jeszcze raz. – GolezTrol
Nie ma problemu, więcej błędów daj mi znać :) –