Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

04.05.2012, 16:07

Vektorgrafiken

Hallo.
1. Kennt ihr Spiele, die mit Vektorgrafiken arbeiten? Damit meine ich, dass Grafiken als Vektoren realisiert sind.
Viele Flashgames wirken ja eher flächig, ist zu lange her, dass ich mal mit Flash gearbeitet habe, aber dort arbeitet man auch mit Vektorgrafiken oder?

2. Wisst ihr, ob dieses Spiel hier ( Castle Crashers ) auch mit Vektorgrafiken arbeitet?: http://www.youtube.com/watch?v=HhPHRm-kJ5w

3. Mir gefällt das Konzept von Vektorgrafiken, dabei geht es meist weniger ums Detail und es wirkt eben alles ein bisschen flächiger bzw. flashgame-mäßig. Hat aber durchaus seinen Charme finde ich.
Das Problem ist natürlich, dass die Darstellung von Vektoren komplizierter ist, als die von Pixeln, also von der technischen Seite, sehen tun wir am Ende ja schließlich Pixel und so muss es einen Algorithmus geben, der die Vektorgrafiken irgendwie mit Pixeln darstellt. Der Vorteil ist natürlich, dass Vektorgrafiken sehr klein sind und ohne Qualitätsverlust skalierbar.

Wollte demnächst mal mit einem kleinen Projekt in C++ mit Allegro anfangen. Habe mich aber noch nicht schlau gemacht, inwiefern man dort mit Vektoren arbeiten kann.

4. Im Castle Crashers Video wird häufig auch raus- und wieder reingezoomt. Wie realisiert man sowas von der technischen Seite, bei Pixelgrafiken wird die Ursprungsgrafik ja dann entweder verkleinert oder vergrößert, aber es sieht ja trotzdem vernünftig aus. Überhaupt, wie realisiert man unterschiedliche Auflösungen bei 2D Spielen? Soweit ich informiert bin ( bei Computerspielen ), erstellt man die Grafiken einfach für eine bestimmte ( meist eine höhere ) Auflösung. Ich kenne mich in Sachen Perfomance nicht aus, aber mir würden da gleich viele Dinge zu einfallen, z.B. dass Grafiken automatisch mithilfe eines "Rohlings" entsprechend der Auflösung generiert werden ( quasi eine einmalige Aktion ) oder dass während des Spiels das Programm die Grafiken verkleinert oder vergrößert.

So das sollte erstmal reichen an Fragen, da ich ja Niemanden mit zu langem Text erschlagen will.
Habe die einzelnen Bereiche/Fragen mal mit Nummern versehen, sodass ihr gezielt antworten könnt.

Ich bedanke mich natürlich im Voraus schonmal für Hilfe/Antworten.


Mit freundlichen Grüßen
Jan

2

05.05.2012, 00:37

Ich glaube einige KDE Spiele benutzen Vektorgrafiken. Daraus wird dann immer, wenn sich die Auflösung ändert (d.h. Fenstergröße bei nicht Vollbild) eine Pixelgrafik generiert, die dann angezeigt wird.
Zur Darstellung sollte es eigentlich eine Reihe von Bibliotheken geben, die dir beispielsweise von einer SVG eine Bitmap erzeugen, die du dann anzeigen kannst.

Bei vielen 2D Spielen ändert sich mit der Auflösung einfach der Ausschnitt der Spielwelt, den man sieht. Man kann natürlich Grafiken auch in unterschiedlichen Auflösungen vorhalten, oder halt von einer sehr großen immer runterrechnen.
Lieber dumm fragen, als dumm bleiben!

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

3

05.05.2012, 12:26

Ich persönlich finde die Idee hinter Vektorgrafiken auch sehr sexy, aber leider sind Formate wie SVG alles andere als einfach, weshalb es nach meinem Kenntnisstand zwei Libs gibt die SVG umfassend darstellen können: Qt und Cairo. Es gibt noch eine Variante, die aber wohl nur für *nix Systeme funktioniert. Einen leichten SVG Renderer für Spiele etc. steht aber ganz oben auf meiner Wunschliste. Ansonsten ist es halt immer so, dass im Endeffekt aus einer Vektorgrafikanweisung ein Pixelbild gerendert wird, womit sich natürlich auch wieder Aliasingprobleme usw. ergeben. Im Allgemeinen stellt es für die Graka kein Problem dar, aus einem Bild hoher Auflösung ein Bild kleinerer Auflösung zu erstellen beim Rendern. Andersrum geht auch, ist aber schnell sehr hässlich.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

4

05.05.2012, 15:34

Danke, die Beiträge haben mir schonmal sehr geholfen. Als ich gestern gegoogelt hatte, bin ich auch schon auf Qt und Cairo gestoßen. Da muss ich mich dann mal wegen den Lizenzen schlau machen. Glaubt ihr denn, dass es sich bei Castle Crashers auch um ein Spiel handelt, welches mit Vektoren arbeitet? Auch wenn es aufgrund der Optik den Anschein hat, ist es vermutlich aber nicht der Fall, oder? Ich glaube mit XNA ( mit C# und XNA programmiert man ja xbox Spiele ) lässt sich sowas ohne Weiteres auch nicht realisieren.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

05.05.2012, 16:11

Ich glaube mit XNA ( mit C# und XNA programmiert man ja xbox Spiele ) lässt sich sowas ohne Weiteres auch nicht realisieren.

Klar - Vektorgrafiken kann man relativ einfach auf den Bildschirm bringen, schließlich arbeiten Grafikkarten auch mit (einer sehr simplen Form von) Vektorgrafiken, nämlich Dreiecken.
Wenn du also die Vektorgrafik in Form von vielen Dreiecken zeichnest, geht das schon und auch recht schnell.

6

05.05.2012, 16:28

Ja, nur die Frage ist inwiefern XNA einem überhaupt Abstraktionen zur Darstellung von Vektoren liefert. Wobei ich ja ohnehin nicht mit XNA arbeiten wollte ( da platformabhängig ).

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

7

05.05.2012, 16:30

Mit XNA kann man fast wie mit Direct3D arbeiten, also wäre das kein Problem.

Tobiking

1x Rätselkönig

  • Private Nachricht senden

8

05.05.2012, 17:04

Ist vielleicht auch ganz interessant, dass es von NVidia OpenGL Extensions zum Zeichnen von Vektorgrafiken gibt (http://developer.nvidia.com/nv-path-rendering). Laut den Vortragsfolien soll das ganze im Vergleich zu anderen Lösungen auch richtig performant sein. Ist nur Schade, dass es ebend spezielle NVidia Extensions sind.

Werbeanzeige