Importer OBJ do Papervision3D 2.0

Papervision3D to znany silnik 3D pod AS3, który wraz z wersją 2.0 (Great White – link do dokumentacji), stał się bardziej utylitarny, spójny, a przede wszystkim wydajniejszy, (choć nie ma co ukrywać, wydajności rozwiązań programowych w stosunku do dedykowanej akceleracji sprzętowej nawet nie ma co porównywać). PV3D można pobrać z SVN’a – http://papervision3d.googlecode.com/svn/trunk/branches/GreatWhite/ (przydatny może okazać się plugin Subclipse, o którym pisaliśmy tu).Oczekując na to, aż Flash Player faktycznie zacznie wspierać 3D od strony sprzętowej (bezpośredni dostęp do warstwy sprzętowej za pomocą dedykowanej HAL) w tej chwili trzeba sobie jakoś radzić zarówno z wydajnością jak i z „efektami” (polecam m.in. zapoznanie się z WOW bazującym na APE – pobrać go można z SVN – http://wow-engine.googlecode.com/svn/trunk/).
Plik tekstury:

Jeżeli chodzi o import gotowych obiektów, Papervision3D wspiera m.in. format bazujący na XML – Collada ,DAE, ASE, MD2 pojawił się też kiedyś importer plików D3S (starszy format 3D Studio). Jako wieloletni użytkownik Ligtwave’a musze przyznać, że osobiście nie spotkałem się jeszcze z dobrymi eksporterami do formatu Collada, które gwarantowałyby precyzyjne teksturowanie mapami. Dlatego zapragnąłem importować do PV3D pliki OBJ wraz z mapami tekstur i stąd też stworzyłem być może nieidealny na ten czas importer plików OBJ do PV3D, ale taki, który przynajmniej pozwala na precyzyjnie teksturowanie obiektu (podpięcie tekstury itd…) w formacie, który dla mnie jest bliższy i bardziej popularny np. od DAE. Powiedzmy ze wersja importera OBJ jest wersją 0.1alpha ;).
W tej chwili importer ma następujące ograniczenia:
- wszystkie ścianki w obiekcie muszą być trójkątne,
- każdy wierzchołek musi mieć odzwierciedlenia na mapie UV
- obsługiwana jest jedna mapa UV i jeden materiał na obiekt.
Pobierz przykładowy plik OBJ
Pobierz przykłądową teksturę
Importer będzie jeszcze rozwijany – niemniej jednak, jeżeli komuś może się przydać, odpowiednią klasę (Obj3D.as) można pobrać z tego linku.
Konstruktor:
Obj3D (OBJUrl:String, Malterial::MaterialObject3D=null, initObject:Object=null)
Użycie:
var mat1:WireframeMaterial = new WireframeMaterial(0×000000,50,0);
var test_obj:Obj3D = new Obj3D(”hawk_head01.obj”, mat1);
scene.addChild(test_obj, “test_obj”);
Tagi: ActionScript,Komponenty,Przykłady

FLEX
AIR
PLUGIN'y FLASH
RSS dla każdego








5 komentarzy
Michał
Fajna sprawa! :)
Udało mi się to bez problemu odpalic i trochę się pobawić i jest generalnie OK:)
Pytanie moje dotyczy eksportu do OBJ , którego używasz. Tzn. czy zwykły lightwave export daje rade? nie udalo mi sie maxowego exportu zmusic do wygenerowania pliku, który Twoja klasa obsłuży.
Ratuj :)
Pozdrawiam,
Michał
30 kwi 2008
Tomek
Wczytują się obiekty OBJ exportowane przez lightwave (zarówno ze starszych wersji jak i najnowszej bety, gdzie jest nowy exporter) jak i OBJ z bibliotek evermotion (www.evermotion.org) – tyle przetestowałem. Pamiętaj że obiekt powinien mieć mapę UV na wszystkich wierzchołkach, a wszystkie powierzchnie muszą być trójkątne.
5 maj 2008
Tomek
Jakby to co napisałem wczoraj nie pomogło podeślij mi proszę ten obiekt mailem (tkulczycki@janmedia.com).
6 maj 2008
Michał
Witaj,
Dzięki za odpowiedź – będę próbował z lightwavem w takim razie – exporter 3dsmaxa wyrzuca mi skrajnie inne składniowo pliki i musiałbym pisać jakieś skrypty w awk zeby konwertowac je do czegoś co będzie podobne do Twojego przykładowego obj’a. Generalnie jak tylko to rozpracuję dam znać. Dzięki za propozycję z podsyłaniem obiektów mailem, ale nie bede robil klopotu, gdyz poki co i tak eksperymentuje z tym niekomercyjnie i nie robie zadnego zlecenia, do którego byly by potrzebne modele z obj’a :) Generalnie dobrze to działa i fajnie, ze ktos to napisal. dzieki jeszcze raz, pozdrawiam,
Michał
11 maj 2008
Grzesiek
Proponuję stworzyć mini listę poprawnych obiektów z przykładami.
Ktoś wie jak założyć teksturę ?
27 maj 2008
Skomentuj “Importer OBJ do Papervision3D 2.0”