Grafik
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.
|
Historie[Bearbeiten | Quelltext bearbeiten]
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.
Grafikdarstellung auf dem C64[Bearbeiten | Quelltext bearbeiten]
Der C64 besitzt eine ganze Reihe von Möglichkeiten zur Grafikdarstellung, die der Grafikchip VIC ermöglicht:
- Block-Grafik, zusammengesetzt aus Zeichen aus dem Zeichensatz-ROM von Commodore.
- Grafik in Form von selbst definierten Zeichensätzen, primär genutzt in Computerspielen.
- Bitmap-Grafik in zwei verschiedenen Grafikmodi: Multicolor und Hires.
- Sprites.
- Spezial-Grafikmodi, die CPU-getrieben die Fähigkeiten des VIC erweitert, wie FLI, IFLI, NUFLI.
Grafikprogramme[Bearbeiten | Quelltext bearbeiten]
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)
Grafikprogrammierung[Bearbeiten | Quelltext bearbeiten]
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.
Speicherplatzverbrauch von Grafikdaten[Bearbeiten | Quelltext bearbeiten]
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.
Bildformate auf dem C64[Bearbeiten | Quelltext bearbeiten]
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 |
Grafikdateiformate auf PC u.ä.[Bearbeiten | Quelltext bearbeiten]
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 |
Computergrafik außerhalb der C64-Welt[Bearbeiten | Quelltext bearbeiten]
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.
Weblinks[Bearbeiten | Quelltext bearbeiten]
Wikipedia: Computergrafik |