2010-10-29 6 views
7

Ich möchte Vektorgrafik in einem OpenGL-Spiel verwenden. Ich möchte Vektorgrafiken verwenden, weil sie kostengünstig ohne Qualitätsverlust skaliert werden können.2D Vektorgrafik Renderer für OpenGL

Natürlich sollte die Zeichnung hardwarebeschleunigt sein, also möchte ich keine Software in eine Textur einzeichnen.

Nun frage ich mich, ob eine Bibliothek, die dies tut, bereits existiert. Gibt es eine Bibliothek, die ein Vektorgrafikformat laden und mit OpenGL anzeigen kann?

+0

Sofern der Autor OpenGL + 2D-Vektorgrafiken zur gleichen Zeit will. – tibur

+0

Lassen Sie mich versuchen zu klären, was ich will. Ich möchte eine Vektorgrafikdatei (i.E.SVG) laden, mache meine normalen OpenGL-Aufrufe mit einem Aufruf gemischt, um die Vektorgrafikdatei zu zeichnen. Ich gebe zu, der andere Thread beantwortet diese teilweise. – Nathan

+0

Die Frage, die von Josh Lee verbunden ist, ist IMHO viel zu weit zu einem Duplikat von diesem oder hat sogar eine Antwort, die von der Heftgröße nicht sein würde ... – Fizz

Antwort

2

Ich würde mich mit nichts OpenVG kümmern, nicht einmal mit MonkVG, was wohl die modernste, wenn auch unvollständige Implementierung ist. Das OpenVG-Komitee wurde 2011 geschlossen und die meisten, wenn nicht alle Implementierungen, sind Abandonware oder bestenfalls Legacy-Software.

Seit 2011 ist der Stand der Technik Mark Kilgards Baby, NV_path_rendering, die derzeit nur eine Erweiterung des Herstellers (Nvidia) ist, wie Sie schon von seinem Namen erraten haben. Es gibt eine Menge von Materialien auf, dass:

NV_path_rendering jetzt von Google Skia Bibliothek hinter den Kulissen verwendet, wenn verfügbar. (Nvidia dazu beigetragen, den Code Ende 2013 und 2014)

Und einen bestimmten Punkt in den Kommentaren angehoben zu beantworten, können Sie Pfad mischen mit anderen OpenGL (3D) Sachen Rendering, wie bei demoed:

Sie können natürlich Last SVGs und solche https://www.youtube.com/watch?v=bCrohG6PJQE. Sie unterstützen auch die PostScript-Syntax für Pfade.

Ein Emporkömmling mit noch weniger (oder gar keinem) Anbieter-Support oder akademischen Glanz ist NanoVG, die derzeit entwickelt und gepflegt wird.(https://github.com/memononen/nanovg) Angesichts der Anzahl der 2D-Bibliotheken über OpenGL, die im Laufe der Zeit gekommen und gegangen sind, nehmen Sie eine große Wette mit etwas, das nicht von einem großen Anbieter unterstützt wird, meiner bescheidenen Meinung nach.

1

Werfen Sie einen Blick auf OpenVG.

+0

Danke. OpenVG scheint cool. Aber ich bin ein bisschen verwirrt. Es ist nur ein Standard, keine Bibliothek, oder? Gibt es eine (Open Source) hardwarebeschleunigte Implementierung für Linux und Windows? – Nathan

+0

Gut. Ich dachte, dass es eine Nvidia-Implementierung gibt. Sehen Sie sich diesen Thread an: [Beste OpenVG-Implementierung?] (Http://stackoverflow.com/questions/401422/best-openvg-implementation). – tibur

1

Viele Diskussionen in this Slashdot post über Renderer für SVG. Ich weiß nicht, welche von ihnen OpenGL verwendet, wenn überhaupt.

This SO question hat auch mehrere Vorschläge, einschließlich sauvage, die in Python getan wird. Cairo ist auch anscheinend eine Möglichkeit.

Es gibt mehrere leistungsstarke Bibliotheken, die SVG ohne OpenGL rendern. Ich frage mich, ob das nicht wirklich notwendig ist: Vielleicht ist das Zeichnen von Linien auf den Grafikkarten der meisten Systeme bereits ausreichend beschleunigt.