2010-10-29 21 views
7

Desidero utilizzare la grafica vettoriale in un gioco OpenGL. Voglio utilizzare la grafica vettoriale perché possono essere ridimensionati a basso costo senza perdita di qualità.Visualizzatore grafico 2D vettoriale per OpenGL

Ovviamente, il disegno deve essere accelerato dall'hardware, quindi non voglio disegnare il software in una texture.

Ora mi chiedo se una libreria che lo fa esiste già. Esiste una libreria in grado di caricare alcuni formati di grafica vettoriale e visualizzarla usando OpenGL?

+0

A meno che l'autore non desideri la grafica vettoriale OpenGL + 2D allo stesso tempo. – tibur

+0

Lasciami provare a chiarire quello che voglio. Voglio caricare un file di grafica vettoriale (i.E. SVG), fare le mie normali chiamate OpenGL mescolate con una chiamata per disegnare il file grafico vettoriale. Lo ammetto, l'altro thread risponde parzialmente. – Nathan

+0

La domanda collegata da Josh Lee è IMHO troppo ampia per un duplicato di questo o addirittura una risposta che non sarebbe delle dimensioni del booklet ... – Fizz

risposta

2

Non mi preoccuperei di nulla di OpenVG, nemmeno con MonkVG, che è probabilmente l'implementazione più moderna, anche se incompleta. Il comitato OpenVG si è chiuso nel 2011 e la maggior parte se non tutte le implementazioni sono abbandonware o nei migliori software legacy.

Dal 2011, lo stato dell'arte è il figlio di Mark Kilgard, NV_path_rendering, che è attualmente solo un fornitore (Nvidia) estensione, come si può immaginare già dal suo nome. Ci sono un sacco di materiali su questo:

NV_path_rendering è ora utilizzato da biblioteca Skia di Google dietro le quinte, se disponibile. (Nvidia ha contribuito il codice alla fine del 2013 e 2014.)

E per rispondere a un punto più specifico sollevato nei commenti, potete mescolare percorso di rendering con altre cose OpenGL (3D), come demoed a:

Potrà SVG carico di corso e quali https://www.youtube.com/watch?v=bCrohG6PJQE. Supporta anche la sintassi PostScript per i percorsi.

Un upstart che ha ancora meno (o addirittura no) supporto del fornitore o glitz accademico è NanoVG, che è attualmente sviluppato e gestito.(https://github.com/memononen/nanovg) Dato il numero di librerie 2D su OpenGL che sono andate e venute nel tempo, si sta facendo una grande scommessa usando qualcosa che non è supportato da un importante fornitore, a mio modesto parere.

1

Dai uno sguardo allo OpenVG.

+0

Grazie. OpenVG sembra interessante. Ma sono un po 'confuso. È solo uno standard, non una biblioteca, giusto? Esiste un'implementazione accelerata da hardwar (open source) per Linux e Windows? – Nathan

+0

Bene. Pensavo che ci fosse un'implementazione Nvidia. Guarda questa discussione: [Migliore implementazione di OpenVG?] (Http://stackoverflow.com/questions/401422/best-openvg-implementation). – tibur

1

Un sacco di discussione in this Slashdot post sui renderer per SVG. Non so quale di loro usi OpenGL, se esiste.

This SO question ha anche diversi suggerimenti, tra cui sauvage che è fatto in Python. Cairo è anche apparentemente una possibilità.

Esistono diverse librerie potenti che rendono SVG senza OpenGL. Mi chiedo se non sia davvero necessario: forse disegnare le linee è già abbastanza accelerato sulla maggior parte delle schede grafiche dei sistemi.