Rendern von SVG mit OpenGL (und OpenGL ES)

Ich bin derzeit auf der Untersuchung der Möglichkeit das Rendern von Vektor-Grafiken aus einer SVG-Datei mit Hilfe von OpenGL und OpenGL ES. Ich beabsichtige zum Ziel Windows und Android. Meine ideale Lösung wäre es, eine minimale C-Bibliothek erzeugt ein polygon-triangulation aus einer gegebenen SVG-Datei. Dies würde dann generieren Sie standard-OpenGL oder OpenGL ES nennt, und die Verwendung von display-Liste oder vbo für die Optimierung beim Neuaufbau. Ich würde einfach zeichnen Sie eine display-Liste zu zeichnen, die Vektor-Bild nach dem übersetzen und drehen, so dass ich mischen diese mit anderen OpenGL-Aufrufe.

So weit ich sehe, sind die Vorschläge zu Erstens QT oder Cairo. - Dies ist keine option, da möchte ich die Verwaltung meiner eigenen OpenGL-Kontext ohne aufgeblähte Bibliotheken (im Rahmen dessen, was ich versuche zu erreichen). Noch ist das geeignet für Android.

Zweite option ist die Verwendung von Bibliotheken, die das Rendern auf eine textur. Das mag ok sein für statische Vektor-Grafik, es ist keine wirksame oder durchführbare option für Spiele, wo die Skalierung und Rotationen auftreten, Häufig.

Drittens gibt es die Möglichkeit, mit OpenVG. Es gibt einige opensource Implementierungen der OpenVG Spezifikation (ShivaVG etc), aber ich bin noch zu finden, eine Bibliothek, die fähig ist, die entsprechenden OpenVG Anrufe von einem gegebenen SVG-Datei zur Laufzeit, und ich kann nicht sehen, wie um dies zu optimieren, wie wir uns das wünschen würden, um mit einer display-Liste oder vbo.

Alle drei Methoden leiden unter Einschränkungen. Ich denke, der vielversprechendste option ist die Verwendung eine OpenVG-Implementierung, wenn keine andere Lösung vorhanden ist. Also meine Frage ist, gibt es Bibliotheken gibt, die das tun, was ich will, oder nahe an dem, was ich will? Wenn nicht, gibt es einen guten Grund gibt, warum nicht? Und wäre es besser zu versuchen, diese aus dem Boden nach oben statt?

InformationsquelleAutor der Frage Matt Esch | 2011-06-09

Schreibe einen Kommentar