Warum verwenden nicht mehr Spiele Vektorgrafiken? [geschlossen]

84

Es scheint mir, dass Vektorgrafiken in Bezug auf Ressourcen / Skalierbarkeit effizienter sind. In den meisten Fällen habe ich jedoch Künstler gesehen, die Bitmap- / Rasterkunst verwendeten. Ist dies eine Einschränkung für die Künstler durch die Spielprogrammierer / Designer? Als Programmierer halte ich Vektorgrafiken für idealer, da hiermit die Auflösung erhöht werden kann, ohne dass die Grafik neu erstellt werden muss, sehr große Grafiken erstellt werden müssen oder Grafiken unscharf werden.

Die Fragen: Warum verwenden nicht mehr Menschen SVG / AI, um 2D-Spielgrafiken zu erstellen? Wäre es tatsächlich bevorzugt (und wer bevorzugt es)? Sind Bitmap-Grafiken ein Standard oder eine Einschränkung (oder vielleicht auch keine)?

Hintergrund: Ich arbeite an einer Engine und hatte ein paar coole Ideen für vektorbasierte Grafiken. Ich möchte jedoch in Zukunft keine Künstler mehr verärgern.

Ich denke, das ist eher eine Frage, die sich um Pragmatismus und die Entwicklung von Spielen dreht.

Parris
quelle
1
Dies hat wahrscheinlich etwas damit zu tun, wie GPUs und Hardware bei Rasterbildern mit einer bestimmten Größe wie 256 x 256 (oder Zweierpotenzen im Allgemeinen) effizient funktionieren .
Asche999
4
Die meisten Fragen, die mich interessieren, sind "meinungsbasiert" und "geschlossen". Schade!
Joe Huang
Vektorspiele sind effizienter, Pixelspiele eleganter. Ich bevorzuge Pixelkunst gegenüber Vektorkunst, nur weil ich die Mühe zu schätzen weiß, die sie verursachen, und weil sie scharf und optisch ansprechend sind. Vektorspiele lassen sich schneller erstellen und sind kameraschonender. Sobald eine Pixelgrafik gestreckt oder komprimiert wird, wird sie nicht mehr so ​​gesehen, wie sie sein soll, und es kann sich auch um Vektorgrafiken handeln. Vektorkunst ist für mich verschwommen und frustrierend.
Dmitry
Hier geht es nicht nur um Spiele, sondern auch um Comics. In Photoshop werden in der Regel mehr Rastergrafiken als in Illustrator verwendet. Es ist schwierig, mit Vektorgrafiken sehr präzise subtile Farbabstufungen zu zeichnen, Pixel zu mischen, Kanten zu glätten usw. Sie können Pixel nicht so einfach wie Farbe auf einer Leinwand mit Vektorgrafiken verschmieren. Sie sind in der Regel recht knackig - geeignet für bestimmte Cartoon-Stile, aber weniger zum Zeichnen subtiler Rundungen von Formen, weichen Schatten, Sfumato usw.

Antworten:

58

Im Gegensatz zu anderen Kunstformen erfordert Vektorgrafiken eine extrem hohe Präzision, was sie für viele Kunststile ungeeignet macht. Grundformen und ähnliches sind mit Vektorgrafiken einfach zu handhaben, aber es ist nur ein Problem, kleine Details hinzuzufügen, die wirklich einfach zu malen wären. Also ist es irgendwie auf sehr einfache "symbolische" Stile beschränkt. Für alles andere funktioniert Malen einfach besser.

Wofür Vektorgrafiken geeignet sind, sind Symbole und Design, und dort gibt es nicht viele Künstler, die etwas anderes verwenden würden.

Übrigens: Die Skalierbarkeit ist auch für Rastergrafiken kein wirkliches Problem. Malen in 10-facher Auflösung ist kein so großer Unterschied zu Malen in der Auflösung, die angezeigt werden soll. Was heutzutage ziemlich oft gemacht wird (oft als "HD-Graphics" beworben).

API-Biest
quelle
ahhh das macht sinn!
Parris
1
@ Mr.Beast Ich weiß, dass diese Frage vor einiger Zeit beantwortet wurde, aber was bedeutet Malen in 10-facher Auflösung?
Bitbitbot
@bitbitbot Wenn Ihr Sprite normalerweise mit 20 x 20 Pixel angezeigt wird, zeichnen Sie es mit 200 x 200 Pixel. Auf diese Weise bleibt es beim Vergrößern scharf. Es muss nicht detaillierter sein, es soll nur vermeiden, dass es pixelig aussieht.
API-Beast
1
-1 Ich denke, es liegt hauptsächlich an der Geschichte von Games, die mit pixelgerenderten Sprites nur aus Performance-Gründen begann. Man muss bedenken, dass der Umgang mit Vektoren viel rechenintensiver ist als einfache gerasterte Arrays. Zu dieser Zeit war diese Lösung mit den aktuellen CPUs einfach nicht möglich. Es ist auch nicht so einfach, wie es auf den ersten Blick jenseits der Vektoren erscheinen mag, z. B. wird eine Game-Engine viel kniffliger, wenn es darum geht, Vektoren anstelle von normalen rohen Sprites zu verarbeiten. Heutzutage, nur um Sie daran zu erinnern, dass die meisten Spiele 3D-Inhalte verwenden und der Detailgrad einfach erstaunlich ist.
user14170
39

Vektorgrafiken sind in der Regel effizienter als Rastergrafiken für die Speicherung (dh die Dateigröße ist kleiner), aber für die Leistung erheblich weniger effizient (dh wie viel Zeit der Computer benötigt, um das Bild zu zeichnen).

Um ein Bild anzuzeigen, muss der Computer dieses Bild rastern (dh die Pixel im Bild berechnen). Da Rastergrafiken per Definition bereits gerastert sind, muss der Computer nicht viel berechnen, bevor die Pixel in den Rückpuffer verschoben werden.

Dieses Problem hängt jedoch davon ab, ob Sie Vektorgrafiken in Echtzeit im Spiel verwenden oder ob Sie von Künstlern sprechen, die in Illustrator zeichnen und dann in Rasterformate wie PNG exportieren.

schockierend
quelle
1
Ich denke, ich dachte hauptsächlich darüber nach, Vektorgrafiken in Echtzeit zu rendern. Das Rastern kann jedoch sinnvoll sein. Ich denke, zu diesem Zeitpunkt gibt es keinen großen Unterschied als nur mit einem Raster-Grafik-Tool.
Parris
3
Vektorgrafiken sind für die Speicherung nicht immer effizienter - im Allgemeinen nimmt mit zunehmender Detailgenauigkeit eines Bildes auch die Komplexität seiner Darstellung als Vektorbild zu. Normalerweise kommt ein Punkt, an dem ein detailliertes Bild in Rasterform tatsächlich kompakter ist als in Vektorform. Ich glaube, die meisten Texturen fallen in diese Kategorie. Dies ist ein guter Grund, warum Raster mehr als Vektoren verwendet werden.
Mac
7
@Parris Rendering von Vektorgrafiken in Echtzeit ist Rastern ihnen; Der Frame-Buffer selbst ist ein Raster-Array. Daher werden die Vektorgrafiken zu einem bestimmten Zeitpunkt im Prozess - ob in Ihrer Tool-Pipeline, in Ihrer Engine oder in den Treibern unter Ihrer Engine - in Raster konvertiert, und zwar in diese Konvertierung wird einige Zeit in Anspruch nehmen. Nicht unbedingt viel Zeit - aber eine nicht zu vernachlässigende Menge.
Steven Stadnicki
1
@StevenStadnicki ja das ist wahr! Ich nehme an, dass es fast eine Optimierung ist, es vor der Hand zu machen.
Parris
17

Tatsächlich gibt es eine Reihe von 2D-Spielen, die Vektorgrafiken verwenden. Capcoms Ghost Trick: Phantom Detective generiert beispielsweise seine in der Engine befindlichen Zeichen im Wesentlichen als Vektorgrafiken. (Genauer gesagt, glaube ich, dass sie als flach gefüllte polygonale Bereiche angegeben werden, was in diesem Fall dasselbe bedeutet). Im weiteren Sinne können Polygonmodelle im Allgemeinen als ‚Vektor‘ Daten gedacht werden - sie die Ecken, Kanten und Flächen eines Objekts darstellen - im Gegensatz zu (Bildschirmauflösung) ‚Raster‘ Daten, also in gewisser Weise der meist 3D - Spiele sind unter Verwendung von vektorisierten Datenbeschreibungen.

Aber ich vermute, Ihre Frage ist mehr über 2D-Kunst, und da spielen mehrere Faktoren eine Rolle. Wie Mr. Beast sagt, sind Vektorgrafiken aufgrund kleiner Details etwas schwieriger zu konstruieren. Stellen Sie sich so etwas wie einen Granatengürtel an einem Charakter vor, bei dem selbst ein bisschen geschicktes Kopieren einzelner Granaten nicht viel Zeit spart. Ich denke, das größere Problem ist jedoch, dass Vektorgrafiken die Kontrolle verlierenvom Künstler; Wie Sie bemerken, sieht Vektorgrafiken möglicherweise wesentlich besser skaliert aus, aber die eigentlichen Probleme treten bei niedrigeren Auflösungen auf, bei denen die fummeligen Details der Rasterung das Erscheinungsbild eines Bildes erheblich verändern können. Stellen Sie sich zum Beispiel das Auge eines Charakters vor; Die äußere Grenze könnte ein Oval sein, das nicht mehr als zehn oder zwanzig Pixel breit ist und möglicherweise nur eine kleine Handvoll Pixel hoch ist. Bei diesen Auflösungen wird die Rasterung der Vektordaten - ob Linien, Kreisbögen oder Bézier-Kurven - zu einem kritischen Thema. Wenn Ihre Künstler nicht direkt in der Engine arbeiten können - was im Wesentlichen bedeutet, dass sie ein völlig neues Vektorzeichenprogramm erstellen -, werden sie Es fällt mir schwer zu garantieren, dass das Erscheinungsbild ihrer Objekte im Spiel mit dem Erscheinungsbild ihres Werkzeugs übereinstimmt. Was ist mehr, Nur bei einer Auflösung richtig zu erscheinen, ist keine Garantie dafür, dass sie bei jeder anderen korrekt erscheinen. Auch hier funktioniert die Skalierung gut, wenn Sie mit Objekten arbeiten, deren Details Dutzende oder Hunderte von Pixeln groß sind. Wenn Sie sich jedoch auf Features mit kleinerem Maßstab beschränken, werden für das skalierte Rendern genau dieselben Rasterungsdetails verwendet.

Das heißt, vektorisiertes Rendern ist nicht immer unangemessen und kann oft eine stilistische Wahl mit hervorragender Wirkung sein. Es ist jedoch kein Allheilmittel für die Probleme, die Sie mit Rastergrafiken ansprechen, und es wirft auch eigene neue Probleme auf.

Steven Stadnicki
quelle
7

Ich glaube, dass es hauptsächlich eine Kombination aus Tradition, Werkzeugen und Technologie und Erwartungen ist, die sich alle gegenseitig beeinflussen.

  • tradition - rastergrafiken waren die einfachste möglichkeit, detaillierte bilder für den größten teil der geschichte der spielentwicklung zu rendern. diese arbeitsweise hat sich bei programmierern und künstlern etabliert und geht auf eine zeit zurück, in der sich künstler noch weitgehend mit spielen beschäftigten. Vorhandener Code dreht sich um Bitmaps, und vorhandene Künstler haben gelernt, mit Bitmaps zu arbeiten. Und es ist immer teuer, neu zu trainieren und neu zu programmieren.
  • Werkzeuge und Technologie - Künstler tendieren dazu, standardmäßig mit Bitmap-Grafiken und Fotobearbeitungswerkzeugen zu beginnen, vielleicht weil sie eher traditionellen Medien ähneln, aber was auch immer der Grund dafür ist, dass gute Vektoreditoren weniger verbreitet und weniger bekannt sind als gute Bitmap-Editoren. Außerdem war die Technologie zum Rendern von Vektoren für Spiele erst vor relativ kurzer Zeit schnell genug - Entwickler, die Flash für Spiele verwendeten, verwendeten bis vor kurzem normalerweise die Bitmap-Oberfläche, und Canvas- / SVG-Technologien sind auch in Bezug auf eine effiziente Unterstützung relativ neu. Außerdem gibt es keine dominante Vektorrenderbibliothek (von der ich weiß), die die Leute im Vergleich zu Alternativen wie SDL, XNA, Pygame usw. verwenden können. Programmierer sehen dies daher nicht als eine sehr praktikable Route an. Aber es' s nicht Programmierer, die dies unbedingt für Künstler durchsetzen müssen - in der Regel sind Künstler mit der Bearbeitung von Bitmaps weitaus zufriedener. (Schließlich sind Künstler nicht immer Grafikdesigner.)
  • Erwartungen - Mit dem technologischen Fortschritt haben die Spieler immer realistischere Spiele erwartet. Dies kann von den Spielern selbst oder von den Verlagen und dem Marketing oder von den Hardwareherstellern getrieben worden sein, die Grafikkarten verkaufen möchten, oder von Experten, die Spiele für im Grunde interaktive Filme halten, oder von einer Kombination der oben genannten. Unabhängig davon, wer dies verursacht hat, ist dies ein Faktor, und daher drängt der Markt im Allgemeinen auf realistische Grafiken. Vektoren eignen sich schlecht für realistische Grafiken, und so kommt es erst in relativ kurzer Zeit, in der sich Grafiken dem Fotorealismus annähern und damit ihre Identität verlieren, zu einem Wiederaufleben stilisierter Grafiken und zu einem Interesse an verschiedenen Präsentationsstilen wie Vektorgrafiken.

Das Interessante an diesen Punkten ist, dass man sieht, dass sich die Dinge ändern. Vielleicht wird die Verwendung von Vektorgrafiken in naher Zukunft zunehmen. Moderne Grafikhardware eignet sich gut für Vektorgrafiken. Es geht also eigentlich nur darum, eine gute Technologiekette zu schaffen, um Kunst ins Spiel und auf den Bildschirm zu bringen.

Kylotan
quelle
5

Imho, es ist der Unterschied in der Herangehensweise ... es geht mehr darum, deine Kunst zu bauen, als sie zu zeichnen. Ich bevorzuge Vektorgrafiken, da sie sich leicht ändern, wiederverwenden und skalieren lassen und ich das Gefühl habe, dass ich sie mit Leichtigkeit erstellen kann. Die meisten 'ausgebildeten' Künstler bevorzugen einen Zeichen- und Malansatz, während viele Grafiker gerne Vektoren verwenden.

Schauen Sie sich mein Blog an: http://2dgameartforprogrammers.blogspot.com.au/

Es ist hilfreich, am Anfang zu beginnen und zuerst die früheren Tutorials zu lesen. :)

SpriteAttack
quelle
2

Ich habe vor einiger Zeit einen Artikel mit dem Titel Icon Design: Bitmap vs Vector gelesen, der die Klarheit von Details zeigt, die beim Skalieren eines Vektorbildes verloren gehen. Es ist nicht so, dass es zu Verlusten kommt, es ist so, dass es als Bitmap fein abgestimmt werden kann.

Schauen Sie sich dieses Beispiel eines Druckersymbols an (das eingekreiste Bild ist jeweils der Master):

Bildbeschreibung hier eingeben

Der Sweet Spot ist mit dem Vektor zu skalieren und dann mit dem Raster anzupassen. Ich vermute, ich sage, dass sie Vektor verwenden könnten, aber das Endergebnis ist Raster.

PhilJ
quelle
10
-1. Sie vergleichen hier Äpfel und Orangen. Sie sagen, ein Rasterbild ist besser, weil Sie mehr Details hinzufügen können. Sie können stattdessen auch ein Vektorgrafik-Symbol für jede Symbolgröße (mit den entsprechenden Details, Strichstärken usw.) erstellen, was ebenfalls gut funktioniert. Es ist klar, dass das Vergrößern einer Vektorgrafik nicht auf magische Weise mehr Details hinzufügt. Das Vergrößern einer Bitmap würde jedoch zu einer noch schlechteren Qualität führen.
Bummzack
4
"Sie könnten genauso gut ein Vektorgrafik-Icon für jede Icon-Größe erstellen", stimmte zu. Sowohl das Erstellen vieler Vektorgrafiken als auch vieler Rasterbilder verursacht mehr Arbeit. Mein Punkt war, dass es schön wäre, wenn Sie ein großes Vektorbild mit allen Details erstellen könnten, das für alle Größen verkleinert werden kann. Der Artikel zeigt, dass es leider nicht unter allen Umständen so einfach ist.
PhilJ
@PhilJ das habe ich mir gedacht. Fügen Sie alle Details hinzu, die Sie möchten, und verkleinern Sie sie bei Bedarf, aber es würde nicht komisch werden, wenn Sie sie ebenfalls vergrößern würden.
Parris
2

Es ist in erster Linie ein technisches Problem, dass die meisten Unternehmen in ihren Spielen keine reine Vektorgrafiken verwenden. Ich kenne viele Künstler, die ihre Kreationen in Flash oder Illustrator erstellen, nur um ein gerastertes Bild herauszupumpen, das auf ein Polygon-Sprite geschlagen wird. Es ist nur eine technische Hürde, die die meisten großen Unternehmen nicht gerne herausfinden möchten.

Unten sehen Sie ein Beispiel für eine animierbare Figur aus AI mit ungefähr 13 beweglichen Teilen. Es wäre großartig, dies nutzen zu können, aber wir mussten jedes Stück sorgfältig in ein eigenes Bild einfügen. Der einzige Vorteil war, dass wir diese Assets bereit hatten, um sie für jede Marketingkunst zu skalieren.

Beispiel eines Vektorzeichens für eine Animation

Ein weiterer Grund, warum es nicht beliebter ist, ist, dass das EPS-Format andere Standards hat als AI. Alle Schnickschnack, die Künstler gerne in ihre Bilder einfügen, gehen verloren, wenn sie als EPS konvertiert werden.

Letztendlich weiß ich nicht, was nötig ist, um Vektorgrafiken in ein Spiel zu implementieren, aber ich weiß, dass die meisten Ingenieure, mit denen ich zusammengearbeitet habe, sich dafür entschieden haben, einfach ein PNG auszuspucken, anstatt sich damit zu befassen.

Brian James
quelle
1

Ich kann nicht für jedermann sprechen, aber meiner persönlichen Erfahrung nach sind Vektorgrafiken (siehe: Inkscape, das einzige, das ich ausprobiert habe) schwerer zu bedienen und nicht ganz so intuitiv wie Bitmap-Grafikprogramme. Jeder versteht den Pinsel und den Eimer. Kurven sind härter.

Tesselode
quelle