Hochleistungs-Vektorgrafiklösungen [geschlossen]

12

Ich suche eine leistungsstarke Vektorgrafikbibliothek, die ich in meinen Spielen verwenden kann.

Ich denke an Vektorgrafiken, wie sie mit SVG erstellt werden können .

Ich werde im Moment jede Sprache in Betracht ziehen (muss aber unter Windows laufen). Eine Lösung, die GPU-Hardware nutzt, wäre großartig.

Danke im Voraus.

CiscoIPPhone
quelle
Gibt es einen Grund, warum Sie Vektorgrafiken verwenden möchten?
AttackingHobo
Ja, ich mag den Stil, sie können besser komprimiert werden als Texturen und sie sind flexibler für Animationen.
CiscoIPPhone

Antworten:

7

Wenn Windows (Vista und höher) Ihre einzige Plattform ist, sollten Sie sich mit Direct2D befassen , das GPU-beschleunigtes Rendering von 2D-Vektorgrafiken mit Software-Fallback bietet. Für eine X-Plattform-Lösung schauen Sie in Kairo nach , wo es meiner Meinung nach einen GPU-beschleunigten Rasterizer gibt.

boki
quelle
Interessant, ich hatte noch nie von Direct2D gehört. Es scheint nicht weit verbreitet zu sein - vielleicht weil es nur Windows 7 ist.
CiscoIPPhone
Es ist nur Vista und Windows 7, aufgrund der Verwendung von Direct3D 10. Und es ist ziemlich neu :)
boki
2
Beachten Sie, dass einige bekannte Spieleprogrammierer Direct2D für schrecklich halten - braid-game.com/news/?p=455 (das auch auf einen Podcast verweist ) und braid-game.com/news/?p=466 .
Ich denke, der verwaltete Wrapper für Direct2D ist in der Regel viel einfacher zu handhaben als die native Bibliothek. Und die meisten Kritikpunkte, die ich an Direct2D gelesen habe, haben Beispiele angeführt, bei denen die gleichen Ziele in Direct3D relativ einfach erreicht werden können. Sicher, es ist übertrieben, ein Rechteck zu zeichnen, aber es funktioniert gut für Kurven und Formen mit nichttrivialer Texturierung und / oder Kontur. Außerdem war D2D nicht in erster Linie für Spieleentwickler gedacht - es sollte eine reichhaltigere und leistungsfähigere Alternative zu GDI bieten. Aber es funktioniert gut mit Direct3D.
Mike Strobel
3

OpenVG ist ein Standard für hardwarebeschleunigte Vektorgrafiken. Es wird von GPUs unterstützt, die auf Handheld-Geräte wie Mali / PowerVR / Vivante ausgerichtet sind. Qt und Cairo können OpenVG als renderbasiertes Format verwenden. Es gibt Softwarebibliotheken, die OpenVG mit OpenGL-Hardware (MonkVG, AmanithVG GLE) oder nur mit Software (AmanithVG SRE, ShivaVG, AlexVG) implementieren.


quelle
2

Scaleform GFx ist eine kommerzielle Middleware-Bibliothek zur Integration von Adobe Flash-Filmen (optimiertes Rendering, ActionScript und mehr) in Ihre Engine.

In früheren Leben war die Codebasis von Scaleform GFx die von GameSWF . GameSWF ist Open Source.

Ich hatte vor, dieser Antwort mehr hinzuzufügen, aber als ich darauf zurückkam, wurden die meisten Hauptpunkte, auf die ich eingehen wollte, in anderen Antworten erwähnt.

Die einzige andere Sache, die für den Flash-basierten Ansatz relevant ist, ist die Tatsache, dass Adobe den Quellcode für seine virtuelle ActionScript-Maschine veröffentlicht hat, die jetzt im Internet verfügbar ist Tamarin-Projekt bei Mozilla untergebracht ist.

Neverender
quelle
1

Wenn Sie Windows XP verwenden oder etwas möchten, das auf den meisten Windows-Versionen funktioniert, sollten Sie DirectDraw (obwohl es jetzt ein bisschen alt ist) oder GDI + ausprobieren , oder Sie könnten Flash verwenden, das für das Rendern von Vektoren ziemlich gut zu sein scheint und es ist Plattform überqueren.

dotminic
quelle
DirectDraw ist seit einiger Zeit veraltet, und meines Wissens verfügt es über keine nativen Funktionen zum Rendern von vektorbasierten Grafiken. Ich erinnere mich, dass es sich ausschließlich auf Texturen und Blitting stützte. Ich glaube, dass GDI + nicht beschleunigt ist und GDI, obwohl es beschleunigt ist, eher primitiv ist. Es wäre besser, eine Bibliothek wie Cairo zu verwenden, die mehrere Renderer unterstützt, von denen mindestens einer GPU-beschleunigtes Rendering unterstützt. Direct2D ist wahrscheinlich die beste Wahl für Vista und 7.
Mike Strobel
Meine schlechte, ich dachte, GDI + wurde beschleunigt! Ich denke, Direct2D wäre dann die beste Wahl, wie Sie sagen.
Dotminic
1

Hier und da wird diskutiert, wie SVG-Grafiken in die XNA-Game-Engine integriert werden können. Eine hier: http://wam-games.com/2010/04/svg-in-xna/ und hier ist ein Beitrag auf dieser Site: SVG-Grafiken direkt in XNA rendern

XNA leitet so ziemlich alles über Direct3D, so wie ich es verstehe, also ist alles GPU-beschleunigt. Sie müssen im Grunde in C # programmieren, um es zu verwenden (Sie können andere Sprachen verwenden, aber Sie müssen es hacken.) Mit XNA erhalten Sie Windows sicher, aber auch die Möglichkeit, auf XBox360 und einige tragbare Plattformen zu portieren.

CodexArcanum
quelle