2013-06-26 14 views

Odpowiedz

5

W tym momencie nie ma żadnego bezbolesnego wsparcia dla grafiki wektorowej w Libgdx (połowa 2013 r.). Po pierwsze, dla grafiki wektorowej ogólnie oznacza to, że w praktyce jest to SVG.

Część problemu z "generycznym" rozwiązaniem SVG polega na tym, że uruchomienie go we wszystkich różnych przypadkach narożnych wydaje się być problemem. Jednakże, jeśli próbujesz renderować własne obiekty SVG, możesz mieć prostszy podzbiór SVG do radzenia sobie i hakowania, co może ci się przydać (nawet jeśli nie jest to generyczne dla wszystkich). Dodatkowo, jeśli chcesz używać bitmap jako pośrednika (nie musisz renderować grafiki wektorowej bezpośrednio na ekran), musisz po prostu znaleźć parser i rasteryzer SVG oparty na Javie (vs. taki, który używa backendu Libgdx lub LWJGL).

Zobacz Using SVG files with libgdx. Sugestią jest tutaj użycie Libgdx ShapeRenderer dla prostej "skalowalnej" grafiki. To nie jest SVG, ale może być rozsądne dla twojego przypadku użycia.

Wyszukiwania Google pojawiły się w tym numerze GPL'd Java SVG renderer, który korzysta z backendu AWT. Ten kod wygląda na tyle prosty, że można go zaadaptować do używania renderowania Libgdx. Ale biorąc pod uwagę, jak jest to proste, nie jest jasne, ile SVG faktycznie obsługuje (lub nawet w ogóle działa).

Projekt Apache Batik jest generycznym parserem i rendererem Java SVG. Wygląda olbrzymie. Być może uda ci się go przekonwertować SVG do formatu .png (a następnie przekonwertować go do Pixmap Libgdx). (Nie mam żadnego doświadczenia z tym.)

Istnieje (martwy?) libgdx SVG extension project, ale wygląda na to, że tylko najbardziej podstawowe analizy SVG zostały zakończone.

4

Wciąż uczę się także LibGDX i mam zamiar stawić czoła podobnym problemom jak ty; Renderowanie modeli 2D w widoku ortograficznym.

LibGDX współpracuje z OpenGL ES dla grafiki, a także obsługuje importowanie modeli, które są tworzone z wtyczką do Blendera 3D. nie próbowałem tego jeszcze, ale tutaj jest rozwiązanie dla tego:

Importing Models from Blender

Processing code

myślę, że rozwiązanie to byłoby rozwiązać modelować swoje skalowalne grafiki 3D w Blenderze . Jeśli używasz plików SVG, to Blender 3D może importować te pliki, więc możesz użyć Blendera 3D jako pierwszego przyłożenia.

ADD: Teraz udało mi się to zrobić. Jest jednak trochę skrętu: metoda ze skryptem Pythona jest nieaktualna. W komentarzach na stronie do pierwszego linku powyżej znajduje się link do xoppa's tutorials. Opisano tam, jak eksportować modele za pomocą FBX converter tool. Wykonałem kształt samolotu 2D z widokiem z przodu w Blenderze 3D. Wyeksportował go do FBX i użył narzędzia konwertera do utworzenia pliku G3DB.Korzystając z metody G3dModelLoader LibGdx, jak opisano w samouczkach xoppy, możesz teraz narysować go w swoim widoku za pomocą pakietu ModelBatch. Ustaw swój aparat ortograficzny na 0,0,0 (lub cokolwiek, co odpowiada twoim potrzebom) i cofnij się nieco do osi Z - inaczej nie będziesz w stanie go zobaczyć. Ponieważ jest to kamera ortograficzna, nie ma znaczenia jak daleko, ale jakoś 0,0,1 miałoby jakiś sens :) Pamiętaj, aby wyczyścić GL_DEPTH_BUFFER_BIT teraz dla każdej klatki w renderingu.

Powiązane problemy