2013-06-26 7 views

risposta

5

A questo punto non sembra esserci alcun supporto indolore per la grafica vettoriale in Libgdx (metà 2013). Innanzitutto, per la grafica vettoriale in genere significa SVG nella pratica.

Parte del problema con una soluzione SVG "generica" ​​è che riuscire a far funzionare tutti i vari casi d'angolo sembra essere un problema. Tuttavia, se stai solo provando a renderizzare i tuoi oggetti SVG, potresti avere un sottoinsieme più semplice di SVG da gestire e l'hacking di qualcosa potrebbe funzionare per te (anche se non è abbastanza generico per tutti).

Inoltre, se si desidera utilizzare le bitmap come intermediario (non è necessario rendere la grafica vettoriale direttamente sullo schermo), è sufficiente trovare un parser e un rasterizzatore SVG basati su Java (vs. uno che usa un backend Libgdx o LWJGL).

Vedere Using SVG files with libgdx. Il suggerimento è di usare Libgdx ShapeRenderer per una semplice grafica "scalabile". Non è SVG, ma potrebbe essere ragionevole per il tuo caso d'uso.

Le ricerche Google hanno rilevato questo GPL'd Java SVG renderer che utilizza un back-end AWT. Questo codice sembra abbastanza semplice da poter essere adattato per usare il rendering di Libgdx. Ma, dato quanto sia semplice, non è chiaro quanto di SVG sia effettivamente supportato (o se funzioni addirittura del tutto).

Il progetto Apache Batik è un parser e un renderer Java SVG generici. Sembra enorme. Potresti essere in grado di renderlo SVG in formato .png (e poi convertirli in Libgdx Pixmaps). (Non ho alcuna esperienza in merito.)

C'è un (guasto?) libgdx SVG extension project ma sembra che sia stata completata solo l'analisi SVG più semplice.

4

Sto ancora imparando LibGDX e sto per affrontare alcuni problemi simili come te; Rendering di modelli 2D nella vista ortografica.

LibGDX funziona con OpenGL ES per la grafica e supporta anche l'importazione di modelli creati con un plugin per Blender 3D. Non ho ancora provato questo, ma qui è una soluzione per farlo:

Importing Models from Blender

Processing code

credo che una soluzione per risolvere questo sarebbe quello di modellare la vostra grafica scalabile in Blender 3D . Se si stanno utilizzando file SVG, Blender 3D è in grado di importare quei file, quindi è possibile utilizzare Blender 3D come primo touchdown.

AGGIUNGERE: Ora sono riuscito a farlo. C'è una piccola svolta però: il metodo con lo script python è obsoleto. Nei commenti sulla pagina al primo link sopra, c'è un collegamento a xoppa's tutorials. Qui è descritto come esportare i modelli con lo FBX converter tool. Ho realizzato una forma piana 2D di fronte alla vista frontale in Blender 3D. Esportato in FBX e utilizzato lo strumento di conversione per creare un file G3DB.Usando il metodo G3dModelLoader di LibGdx come descritto nelle esercitazioni di xoppa, ora puoi disegnarlo nella tua vista con un ModelBatch. Fai in modo che la tua macchina da presa ortografica assuma 0,0,0 (o quello che si adatta alle tue esigenze) e vai un po 'indietro sull'asse z - altrimenti non sarai in grado di vederlo. Dal momento che si tratta di una macchina da presa ortografica, non importa quanto lontano, ma in qualche modo 0,0,1 sarebbe una sorta di senso :) Ricorda anche di cancellare GL_DEPTH_BUFFER_BIT ora per ogni fotogramma nel rendering.

Problemi correlati