Grafik

Aus C64-Wiki
Wechseln zu: Navigation, Suche

Computergrafik bzw. das hier verwendete Kurzwort Grafik bezeichnet die Darstellung von Grafiken jeder Form, die mit Hilfe eines Computers erzeugt und auf Monitoren dargestellt bzw. auf Peripheriegeräte wie Drucker oder Plotter ausgegeben wird. Auf dem C64 bezeichnet der Begriff Grafik alles bildhafte, sprich alles was nicht Text ist. Dabei kann Grafik auf dem C64 auf ganz verschiedene Weisen erzeugt werden.

Inhaltsverzeichnis

[Bearbeiten] Historie

Die erste Grafikform auf Commodore-Heimcomputern war aus sogenannten Grafikzeichen zusammengesetzt. Angelehnt an die Zeichennorm ASCII führte Commodore den Zeichencode PETSCII ein, der verschiedene Grafikelemente (z.B. Linien, Kreisstücke) enthielt, womit einfache Grafikdarstellung ermöglicht wurde. Auf dem PET und verwandten CBM-Rechnern wurden diese nur monochrom dargestellt. Spätere Commodore-Rechner wie z.B. der VC-20, der C64 und der Plus/4 bekamen dann die Fähigkeit, die Zeichen in Farbe zu zeigen. Mit der Möglichkeit, eigene Zeichensätze zu verwenden, kam dann quasi der Durchbruch für Grafik auf Homecomputern Anfang der 1980er Jahre. Ferner kam die Möglichkeit hinzu, Bitmap-basierte Grafikmodi anzuzeigen. Hierbei kann jeder einzelne Pixel des Bildschirms direkt angesprochen werden. Je nach Grafikmodus besteht weiterhin die Möglichkeit, einzelnen oder mehreren Pixeln eine bestimmte Farbe zuzuweisen. Da diese Art der Grafikdarstellung sehr viel filigranere Bilder erlaubt als die Nutzung der vordefinierten Grafikzeichen, wurde (und wird oft noch) in diesem Zusammenhang von "hochauflösender" Grafik gesprochen, auch wenn sich die maximale physische Auflösung gar nicht ändert.

Während in den Anfängen Grafiken noch programmiert werden mussten, entwickelten sich im Laufe der Zeit die ersten Mal- bzw. Bildbearbeitungsprogramme mit denen der Anwender Grafik pixelweise durch Zeichnen mit Pinseln, Einfügen von einfachen Grafikobjekte wie Recktecke oder Kreise bzw. auch einfache Bildoperationen wie Ausschneiden, Kopieren oder "Flächen Ausüllen" schneller und einfacher hochauflösende Grafik erstellen und bearbeiten kann.

Grafikerstellung entwickelte sich zur Computerkunst. Zwar wird in diesem Zusammenhang gern der Amiga erwähnt, da er tatsächlich Künstler dazu brachte, mit dem Computer zu arbeiten. Doch gerade am C64 ist die Erstellung anspruchsvoller Grafik eine große Kunst, da mit diversen Limitierungen gearbeitet werden muss. Dies betrifft nicht nur die Farbpalette, sondern auch die begrenzte Menge an Farben, die in einer "Kachel" (die Fläche, die ein einzelnes Zeichen abdeckt) verwendbar sind. Aber auch aus reinen Textzeichen wird heute noch Computergrafik erstellt, diese Art Grafik ist unter dem Namen "ASCII Art" bekannt. Auf dem C64 wird die Kunst der Grafikerstellung unter anderem gern in sogenannten Grafik-Competitions (Wettbewerbe innerhalb der Demo-Szene) ausgeübt.

[Bearbeiten] Grafikdarstellung auf dem C64

Der C64 besitzt eine ganze Reihe von Möglichkeiten zur Grafikdarstellung, die der Grafikchip VIC ermöglicht:

[Bearbeiten] Grafikprogramme

Zur Erstellung von Grafik am C64 existieren verschiedene Werkzeuge:

  • Zeichensatz-Editor, wird in der Regel benutzt, um eigene Buchstaben oder Zahlen (sprich Zeichen) zu zeichnen.
  • Malprogramme, um Bilder und Grafiken zu zeichnen.
  • Konverter, um Grafik (Bilder) in Zeichensatz zu konvertieren, z.B. zur Verwendung in Computerspielen.
  • Sprite-Editor, um Sprites zu zeichnen.

Ferner können Grafiken auch von anderen Systemen (Amiga, PC) konvertiert werden. Eines der mächtigsten C64-Programme für diesen Zweck ist GoDot, welches primär in den 1990er Jahren gern genutzt wurde. Aber ca. 2000 kamen mehr und mehr PC-Tools auf, mit denen C64-Grafikdateien konvertiert oder auch komplett erstellt werden können, z.B.:

  • Timanthes
  • Project One
  • Mufflon (NUFLI-Konverter)

[Bearbeiten] Grafikprogrammierung

Je nach Fähigkeit und Anspruch des Programmierers stehen verschiedene Möglichkeiten zur Grafikprogrammierung zur Verfügung:

  • In BASIC lassen sich am einfachsten Blockgrafiken mit den Grafikzeichen des Commodore-ROM-Zeichensatzes erstellen.
  • Mit einigen POKEs lässt sich auch von BASIC aus ein Grafikmodus einschalten, ebenso Sprites. Um diese mit Inhalten zu füllen muss man jedoch die Grafikdaten an die richtige Stelle im Speicher laden oder - so wurde es früher gern in Listings gemacht - diese in DATA-Zeilen hinterlegen.
  • Mit ein wenig Kenntnis der Maschinensprache kann man relativ einfach Grafiken im Multicolor- oder Hires-Modus anzeigen. Sind diese einmal zu sehen, muss man nichts weiter programmieren. Schwieriger ist dann, die Grafik zu verändern oder zu bewegen.
  • Einige BASIC-Erweiterungen helfen auch bei der Darstellung von Grafik.
  • Um in Spielen ein Scrolling zu realisieren, wird in der Regel auf Zeichensatz-basierte Grafik zurückgegriffen. Diese zu programmieren und dazu noch Sprites zu bewegen setzt schon recht gute Maschinensprache-Kenntnisse voraus.
  • Sprite-Multiplexer sowie Spezial-Grafikmodi (FLI, etc.) bleiben den Assembler-Profis vorbehalten.

[Bearbeiten] Speicherplatzverbrauch von Grafikdaten

In Abhängigkeit der Grafikart wird unterschiedlich viel Speicher für die Grafik benötigt:

  • Blockgrafik, aufgebaut aus dem ROM-Zeichensatz des Computers, verbraucht am wenigsten Speicher, weil das Aussehen der Zeichen selbst ja im ROM gespeichert ist.
  • Zeichensatz-basierte Grafik verbraucht wenig Speicher, da alle identischen Bereiche einer Grafik durch ein identisches Zeichen repräsentiert werden - deshalb in Spielen sehr beliebt. Ohne Zeichensatz-Grafik wären beispielsweise riesige Level wie bei Turrican auf dem C64 unmöglich.
  • Sprites benötigen 64 Byte pro Stück, unabhängig davon, ob es sich um Hires- oder Multicolor-Sprites handelt.
  • Bitmap-Grafik benötigt am meisten Speicher: 8 Kilobyte benötigt die Bitmap selbst. Bei Hires kommt optional die Information dazu, welche Farben die gesetzen und gelöschten Bits jeder Kachel haben sollen, sie benötigt 1 KB. Bei Multicolor wird zusätzlich noch das Farb-RAM mit Informationen befüllt.
  • FLI benötigt zusätzliche Farbinformationen, NUFLI hat noch einen Layer aus Sprites, IFLI besteht prinzipiell aus zwei kompletten Bitmaps - die Spezialformate benötigen also in der Regel noch deutlich mehr Platz.

Die 64KB Speicher des C64 lassen sich mit Grafikdaten schnell füllen, gleiches gilt für Disketten mit dem Laufwerk 1541. Ende der 1980er Jahre fingen deshalb einige Programme an, komprimierte Formate zu unterstützen, in dem ein interner Packer die Grafik beim Speichern komprimierte und beim Laden wieder dekomprimierte. Das bekannteste Programm dieser Art ist das Multicolor-Malprogramm Amica Paint. Viele beeindruckende Demos auf dem C64 begeistern mit einer unglaublichen Grafikvielfalt, die nur möglich ist, weil die Entwickler die Grafikdaten mit Spezialpackern komprimieren und während das Programm läuft live dekomprimieren.

[Bearbeiten] Bildformate auf dem C64

Auf dem C64 gab es 1982 zunächst nur die von Commodore vorgesehenen Grafikmodi, entsprechend wurden in den 1980er Jahren einige Malprogramme entwickelt, die diese Modi unterstützen und die Bilddaten teils in leicht unterschiedlichem Format abspeichern, obwohl es prinzipiell um die gleichen Informationen geht. Ab 1989 entstanden neue, software-getriebene Grafikmodi und damit auch echte neue Bildformate, die ganz unterschiedliche Informationen beinhalten. Die Tools zur Bearbeitung entsprechender Bilder sind deshalb auch rarer.

Bezeichnung Dateiformat bzw. Programm Jahr Anmerkungen Entwickler des Formats
Multicolor Koala, Amica Paint 1982 Standard-C64-Grafikformat Commodore
Hires Doodle, Hi-Eddi 1982 Standard-C64-Grafikformat Commodore
FLI FLI Paint 1989 Multicolor-Modus, Screen-RAM wird jede Zeile neu gelesen Blackmail
AFLI AFLI-Editor 1990 Hires-Modus, Screen-RAM wird jede Zeile neu gelesen Origo Dreamline
IFLI Funpaint II 1991 Zwei FLI-Bilder werden überlagert, um höhere Auflösung und Farben zu erreichen Manfred Trenz
Super HiRes  ? 1991 Hires-Bitmap mit Hires-Sprite-Layern, kein Vollbild TBH/Onslaught
Super Hires FLI (SHFLI) Super Hires FLI Editor 1996 AFLI mit Hires-Sprite-Layern, kein Vollbild Crossbow & DeeKay/Crest
Underlayed FLI (UFLI)  ? 1996 Vollbild-Hires-FLI (jede 2. Zeile) mit Sprite-Layer Crossbow & DeeKay/Crest
Underlayed Interlaced FLI (UIFLI)  ? 1997 Interlace-UFLI Crossbow & DeeKay/Crest
MultiColor Underlayed FLI (MUFLI)  ? 2006 Wie UFLI, jedoch mit Multicolor-Sprites, deren Farben jede 2. Zeile geändert werden dürfen Crossbow & DeeKay/Crest
MultiColor Sprite Underlay HiRes (MUCSU)  ? 2009 Vollbid-Hires mit Sprite-Layer, lässt mehr CPU-Zeit übrig als FLI-Varianten Algorithm/Onslaught
New Underlayed FLI (NUFLI) Mufflon, NUFLI-Editor 2009 Weiterentwicklung von MUFLI, überdeckt den FLI-Bug mit mehreren Sprites Crossbow & DeeKay/Crest
MultiColor Underlayed Interlaced FLI (MUIFLI) Mufflon 2009 Weiterentwicklung von MUFLI, Interlaced um die Farbpalette von IFLI zu ermöglichen Crossbow & DeeKay/Crest

[Bearbeiten] Grafikdateiformate auf PC u.ä.

Auf anderen Systemen wie Amiga, Mac und PC haben sich über die Jahre zahlreiche weitere Grafikformate entwickelt. Im Gegensatz zum C64 wird auf neueren Systeme jedem Pixel individuell eine wählbare Farbe zugeordnet, es gibt kein Konzept von Kacheln o.ä. Die Grafikdateiformate unterscheiden sich primär in zwei Punkten:

  • Entweder Paletten-basierte Bilder, in denen eine bestimmte Menge Bit pro Pixel genommen werden, um einen Index in eine Farbpalette zu erhalten (daher auch etwas krude übersetzt "Indizierte Farbe" genannt) oder TrueColor-Bilder, bei denen die Bits pro Pixel direkt Werte im RGB-Farbraum repräsentieren (meist 24 Bit, bei 16 Bit wird in der Regel von HighColor gesprochen)
  • Art der Komprimierung, entweder verlustfreie Komprimierung (das Bild wird komprimiert, die Pixel jedoch nicht verändert) oder verlustbehaftete Komprimierung (verschiedene ausgefeilte Algorithmen berechnen Werte für Bildteile, die optisch dem Original nahe kommen, sich aber mit deutlich weniger Datenmenge speichern lassen)

Die Bildformate werden über die auf dem PC üblichen 3-Buchstaben-Endungen unterschieden, wobei es auch einige C64-Formate gibt, denen eine entsprechende Endung zugeordnet wurde.

Abkürzung Dateiformat / Programm Jahr Firma / Autor / Anmerkungen
PCX PiCture eXchange / Paintbrush 1982 ZSoft
KOA Koala Painter 1984 Koala Technologies (auch auf C64)
IMG GEM Paint Image 1984 Digital Research
MAC MacPaint 1984 Apple
TGA Targa Image File 1984 Truevision - TARGA "Truevision Advanced Raster Graphics Array"
PBM Portable BitMap 1980er Sun Microsystems (s/w, ASCII, binär)
PGM Portable GrayMap 1980er Sun Microsystems (Graustufen, ASCII, binär)
PPM Portable Pixmap 1980er Sun Microsystems (256 Farben, ASCII, binär)
HED Hi-Eddi 1985 Markt & Technik Verlag / Hans Haberl
IFF Interchange File Format / Deluxe Paint 1985 Electronic Arts
GEO GeoPaint 1985 Berkeley Softworks Vektorgrafik (auch auf C64)
LBM / ILBM InterLeaved BitMap 1985 (auch auf Amiga)
TIFF / TIF Tagged Image File Format 1980er Aldus
AMI Amica Paint 1987 Oliver Stiller (auch auf C64)
GIF Graphics Interchange Format 1987 CompuServe / Steve Wilhite
BMP Windows Bitmap 1990 Microsoft / IBM
JPEG/JPG/JFIF Joint Photographic Experts Group (File Interchange Format) 1992 Joint Photographic Experts Group

[Bearbeiten] Computergrafik außerhalb der C64-Welt

Auf anderen Heimcomputern wurden auch dem Sprite ähnliche Computergrafiken wie Shapes (u.a. Apple II, C16, C116, Plus/4) oder Bobs (Blitter Object) bzw. MOBs (Movable Object Block, siehe hierfür auch Simons' Basic), genutzt. Der Vorteil dieser Objekte ist u.a. ihre einfache Generierung auf der jeweiligen Plattform.

Da das Abspeichern von Grafiken recht platzintensiv ist, brachten die ersten Bildbearbeitungsprogramme schon eigene Grafikformate mit. Zunächst nur in einfacher Komprimierung, sowie in Schwarzweiß oder einfache Farben wie die Dateiformate PCX, KOA oder IMG. Später dann in höhere Komprimierung wie GIF oder JPEG.

Durch die Einführung von farbigen Thermodruckern konnte auch die Computergrafik farbig ausgedruckt werden. Die meisten Computeranwender konnten es sich jedoch erst mit der Einführung der Farbtintenstrahldrucker Anfang der 1990er Jahre leisten, farbige Computergrafiken auszudrucken.

Eine weiterere Verbesserung in der Welt der Computergrafik brachte die Einführung von vektorbasierten Zeichen und Grafiken, die verlustfrei skalierbar sind, d.h. die vergrößert und verkleinert werden können, ohne dass die Bildqualität darunter leidet. Weiterhin wurden hieraus auch 3D-Computergrafiken entwickelt, die seit Anfang der 1990er Jahre auch vielseitig in Computerspielen eingesetzt und mittlerweile auf immer mehr Gebieten angewendet werden.

Durch die Verbesserung von Grafikkarten, d.h. durch die immer höher werdende Auflösung und der höheren Anzahl von möglichen Farben (16,7 Millionen bei TrueColor) sowie die immens gestiegene Rechenpower, ist die heutige Darstellung von Computergrafik soweit fortgeschritten, dass seit Mitte der 1990er Jahre regelmäßig computergenerierte Zeichentrickfilme (CGI-Filme, engl. Abkürzung für Computer Generated Imagery) in Kinos erfolgreich gezeigt werden. Sah man den ersten Filmen noch an, dass diese per Computer erzeugt wurden, so verschwimmen seit Ende der 1990er Jahre immer mehr in Kinofilmen eingebaute Trickeffekte, Bilder und Videoszenen mit der Realität.

[Bearbeiten] Weblinks

WP-W11.png Wikipedia: Computergrafik