FlexTech Blog - let's Flex

Importer OBJ do Papervision3D 2.0

Autor: Tomek Kulczycki


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:
hawk_head_color_map_512x.jpg

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: ,,

5 komentarzy

  1. 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ł

  2. 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.

  3. Jakby to co napisałem wczoraj nie pomogło podeślij mi proszę ten obiekt mailem (tkulczycki@janmedia.com).

  4. 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ł

  5. Grzesiek

    Proponuję stworzyć mini listę poprawnych obiektów z przykładami.
    Ktoś wie jak założyć teksturę ?

Skomentuj “Importer OBJ do Papervision3D 2.0”

Wyszukaj w postach

Bloguje
  Paweł Cichoń

Trzeba kliknąć

Już wychodzisz? Nie zapomnij kliknąć tych linków. Przyda się!


Spotlight

Prezentujemy sylwetki tzw. klasyków, którzy mają niesamowitą wiedzę oraz robią klasyczną robotę.


Dobra książka

AdvancED Flex 3