Angefangen hat alles mit den monochromen MGA-Karten, die im Ur-IBM-PC eingebaut waren. Diese Karten konnten nur Text darstellen. Die bekannteste Weiterentwicklung waren die HGC-Adapter der Firma Hercules. Neben der Textdarstellung wurde noch ein Grafikmodus mit einer Auflösung von 720x348 Pixeln beherrscht. Dabei wurden 2 Farben, 'An' und 'Aus' beherrscht. 'Aus' ist schwarz, 'An' je nach Monitor grün, bernstein oder bei den ganz edlen Modellen papierweiß.
CGA steht für Color Graphics Adapter. Die Karte beherrschte einen 4-Farben Modus (wobei man die Wahl aus 4 Paletten hatte) mit 320x200 Pixeln oder den 2-Farben Modus (schwarz-weiß) bei 640x350 Pixeln. Die Karte konnte auch einen 160x100 Modus mit 16 Farben darstellen, davon wurde jedoch so gut wie nie Gebrauch gemacht. Die Auflösung war dafür viel zu niedrig und viele Monitore hatten Probleme das darzustellen.
Der Enhanced Graphics Adapter konnte immerhin schon volle 16 Farben darstellen, bei 320x200 oder bei 640x350 Pixeln. Auf der EGA-Karte wurde auch erst mal ein eigenes Grafikkarten-BIOS eingesetzt. Die Vorgänger wurden noch vom PC-BIOS gesteuert.
Die Übertragung der Farben erfolgte im Format R-G-B+Intensity. Durch Aus- und Einschalten der Farben Rot, Grün und Blau konnten 2³= 8 Farben kombiniert werden. Diese konnten noch per Intensity auf Hell geschaltet werden, wodurch sich 16 Farben ergaben.
Die Ur-VGA Karte (VGA = Video Graphics Array) und die technisch 100% kompatible MCGA (Multi Color Graphics Array) kamen mit den gleichen 64 kB aus wie die EGA-Karten auch schon. Bei 320x200 Pixeln konnte eine Farbtiefe von 256 beliebig definierbare Farben aus einer Palette von ca. 250000 Farben dargestellt werden.
Durch Palettenoperationen wiesen die Karten bis dahin ungeahnte Multimedia-Fähigkeiten auf. Zum Beispiel konnte man ein Bild nur durch Umrechnung der 3x256 Palettenregister (Rot, Grün, Blau auf 256 Farben) aus- und einblenden. Im hochauflösenden Modus bei 640x480 war schon wieder Schluss mit dem Multimedia-Spektakel, da waren wieder nur die üblichen 16 EGA-Farben möglich. Da man damals keine Möglichkeit sah, ein digitales Protokoll zu erstellen, dass die VGA-Farben (immerhin über 256000) überträgt, wurden analoge Monitore gebaut. Diese hatten die Möglichkeit, praktisch unbegrenzt viele Farben darzustellen, im Gegensatz zu den Karten welche die Bilder lieferten.
Die Super-VGA Karten sind erweiterte VGA-Karten mit mehr Speicher (256 kB). Sie konnten Auflösungen bis 800x600 darstellen, die Möglichkeit 256 Farben anzuzeigen, rückte auf 640x480 hoch. VGA und alle Nachfolger sind EGA und CGA kompatibel.
E(x)tended-VGA Karten hatten 512 kB Speicher oder mehr. Die X-VGA Auflösung schlechthin ist die 1024x768, aber auch die alten Karten kamen teilweise schon darüber. Neben dem 256 Farben Modus wurde auch der High Color Modus mit 16 Bit (64000 Farben, palettenlos, teilweise auch mit 15 Bit und nur 32000 Farben) und der True Color Modus mit 24 Bit und somit 16 Mio. Farben eingeführt.
Bislang waren die Grafikkarten alle 'dumm'. Die Karten taten nichts anderes, als einfach nur stur vorberechnete Pixeldaten entgegenzunehmen. Windows-Beschleuniger konnten aber auch Befehle abarbeiten wie 'Viereck malen' etc.
Aufgrund der immer höheren nötigen Bandbreiten wurden neue Bus-Systeme vorgestellt: VESA erfand den Vesa Local Bus, VLB. Dieser war anfangs schneller als der parallel von Intel vorgestellte PCI. Ahnlich wie PCI konnte auch VLB nicht nur Grafikkarten aufnehmen, sondern auch andere Geräte, bei denen es auf Geschwindigkeit ankam, wie Festplattencontroller (IDE oder SCSI).
Die besten Karten aus dieser Zeit stammten von Video7 (schnell, zuverlässig, guter Service), Diamond (noch schneller weil gnadenlos übertaktet, aber nicht zu zuverlässig) und Elsa (ebenfalls sehr ausgewogen).
Auch nicht schlecht dabei waren ATi und Matrox, beide mit selbst entwickelten Chips. Etwas später wurde es dann Zeit für ein Comeback des Pioniers Hercules, die Karten mit Chips von ITT und S3 herausbrachten. Und später den absoluten Knaller, die Dynamite 128 mit dem Tseng ET6000, dem ersten 128 Bit Grafikchip.
Es begab sich, dass sich eine kleine Chipschmiede, eine Tochtergesellschaft von SGS Thomson (bekannt durch die CPUs der Tochterfirma Cyrix), namens nVidia den ersten 3D-Chip auf den Markt brachte. Eine PCI-Karte mit dem NV1 wie die Diamond Edge 3D beherbergte neben einem VGA-Modul mit Windows- und 3D-Beschleunigung noch einen TV Ein- und Ausgang und eine Soundkarte, komplett mit Wavetable. Durchsetzen konnte sich das nicht, da erstens nichts davon richtig funktionierte und zweitens die Programmierer mit der Art der 3D-Beschleunigung des NV1, 'Curved Surfaces', damals nicht viel anfangen konnten.
Der Durchbruch gelang mit den legendären Voodoo-Chips von 3dfx. Man steckte sie als Zusatzkarte hinzu (bekanntestes Beispiel die Diamond Monster, bester Vertreter dieser Karte die Miro Hiscore mit TV-Out sowie gleich 6 statt 4MB). Diese rechnete dann 3D-Grafiken aus, und zwar so, dass die Programmierer auch was damit anfangen konnten - also auf Polygon-Basis.
Und sofort sprangen alle auf den 3D-Zug auf - und einige der Hersteller bauten damit beim Käufer ein Misstrauen für ihre Marke auf, welches noch bis heute spürbar ist. Denn mit dem beginnenden Erfolg der ersten 3D-Karten Marke Voodoo ist 3D plötzlich in - und dieses Etikett wird fortan auf jeden Grafikchip geklebt, welcher halbwegs modern ist. Dass diese 'umgelabelten' Karten elementarste 3D-Funktionen vermissen lassen und eher 3D-Bremsen sind, verschweigen die Hersteller. Berühmt-berüchtigte Beispiele für 3D-'Verhinderer' sind die Virge-Serie vom S3 und die Rage-Serie von ATi.
3dfx´ Problem in der Anfangszeit war aber die Tatsache, dass eine zusätzliche Karte nur für 3D für viele noch unerklärlich war und der Masse auch einfach schlicht unbekannt blieb. Erste Versuche von 3dfx mit Standalone-Karten (Voodoo Rush - ein verschlimmbesserter Voodoo - zusammen mit einem 2D-Chip, zuerst ein Avance Logic AT3D, später ein Macronix-Chip) scheiterten aber, da die Karten sowohl unter 2D als auch unter 3D langsamer waren als eine gute 2D+Voodoo Kombi - und auch kaum billiger.
nVidias NV3, besser bekannt als Riva128, hat 3dfx dann erste Kopfschmerzen bereitet. Eine funktionierende 2D-3D Combo, auch noch mit TV-In und Out Funktion und das auf dem 3D-Leistungsniveau einer Voodoo (obwohl die Voodoo immer noch die schönere Bildqualität hatte).
1999 bringt nVidia mit der GeForce die erste Grafikkarte mit Transform & Lighting Engine im Consumer-Bereich.
Im Dezember 2000 zieht 3dfx den Schlussstrich unter das miserable Ergebnis der Geschäftstätigkeit der letzten drei Quartale und löst die Firma auf. Im gleichen Atemzug übernimmt Hauptkonkurrent nVidia Markenname, Technologie, Patente und Sachwerte für ca. 120 Millionen $ - Geld, mit welchem 3dfx die angelaufenen die riesigen Schulden wenigstens zum Teil tilgen wird müssen. Mit 3dfx geht der Pionier der 3D-Grafikkarten, welcher diesen überhaupt erst zum Durchbruch verholfen hat.
S3: Der ehemalige 2D-Leader wurde im Laufe der Zeit nach unten durchgereicht und endete im Besitz von Diamond in Kooperation mit VIA unter dem neuen Namen SonicBlue. Nach erfolglosen Versuchen an die 3D-Welle anzuknüpfen wurde S3 von Diamond übernommen. Hintergrund: Diamond wollte ähnlich 3dfx/STB mit der Voodoo3 eine eigene Karte mit eigenem Chip im Exklusivvertrieb auf den Markt bringen. Das Konzept war gut, der Chip nicht. Der Savage2000 war voller Fehler und trotz (oder eben wegen der extrem fehlerhaften) T&L-Einheit furchtbar langsam. Das Anfang vom Ende von S3, die jetzt in einem Joint Venture mit Chipsatz-Spezialisten VIA unter dem neuen Namen SonicBlue an Chipsatz-integrierten Grafiklösungen arbeiten.
Tseng Labs: Trotz des erfolgreichen und schnellen ET6000 untergegangen. Grund: Der ET6000 war nur ein 2D-Chip, alle Welt wollte aber inzwischen 3D. Der Versuch in Kooperation mit Videologic auch in den 3D-Markt einzusteigen blieb erfolglos. Die Apocalypse 5D war einfach zu langsam und funktionierte aufgrund der exotischen Technik (enthielt quasi 2 PCI Karten, die mit einer PCI-to-PCI Bridge intern verbunden wurden) nicht in jedem Mainboard.
3dfx und STB Systems: Durch den Kauf der für hochwertige Grafikkarten bekannten Firma STB wollte 3dfx in den direkten Grafikkartenmarkt einsteigen. Das Konzept, die Voodoo3 exklusiv aus eigener Herstellung zu vertreiben, ging zuerst auf. Doch der technische Rückstand auf nVidia, ATi und Matrox war einfach zu groß, irgendwann wurden immer weniger 3dfx Produkte gekauft und die Firma fuhr massive Verluste ein. nVidia kaufte die inzwischen recht marode Firma mitsamt der Patente einfach auf.
Hercules: Die Geschichte von Hercules ist ein ständiges Auf und Ab. Nach den unter Computer-Veteranen immer noch bekannten Hercules Grafikkarten aus der Monochrom-Zeit kam lange nichts mehr. Plötzlich mitte der 90er ein Comeback, wieder mit sehr guten Karten. Aufgrund einiger Fehler ging es dann wieder kontinuierlich bergab, bis der französische Soundkartenspezialist Guillemot Hercules übernahm. Seitdem steht Hercules mal wieder für schnelle und zuverlässige Grafikkarten.
Wenn man
sich einmal die Mühe gemacht hat und ein Zeitungsbild mit einer Lupe angesehen
hat, so wird man draufgekommen sein, dass die Bilder aus einzelnen Punkten
bestehen. Bei normaler Betrachtung jedoch "verschmelzen" diese Punkte jedoch zu
einer Fläche. Ein ähnliches Raster könnte man, bei ausreichend starker
Verstärkung, auch bei einem Foto erkennen.
An diesen beiden Beispielen erkennt man, dass realistische Bilder aus einzelnen
Punkten zusammengesetzt werden können, ohne dass unser Auge den Wechsel
zwischen den einzelnen Punkten wahrnimmt.
Einzige Voraussetzung: Die Punkte müssen zahlreich und recht klein sein.
Auf diesem Prinzip basieren auch alle Pixelgrafiken. Diese kleinen Punkte heißen bei einem digitalen Bild 'Pixel'. 'Pix' steht für 'picture', und 'el' für 'element'. Fügt man die beiden Wörter zusammen, so ergibt sich 'Pixel'.
Doch wie
viele Bildpunkte braucht man, um ein Bild zu beschreiben. Grundsätzlich gilt
natürlich je mehr Punkte je besser. Doch nur bis zu einem bestimmten Punkt.
Nämlich wenn trotz erhöhter Pixelanzahl keine extra Details hinzukommen. Eine
andere Grenze stellt die Auflösung des Monitors dar.
Denn ein Monitor Pixel hat eine bestimmte physische Größe, die sich durch das
Lochraster der Röhre ergibt.
32x32 Pixel (gesamt 1024 Pixel)
Bei 32x32 kann man bereits das Bild erahnen. Man beachte, dass die Pixelgesamtanzahl sehr schnell steigt (wichtig für Speicherbedarf). Mit zunehmender Pixelzahl steigt natürlich auch die Auflösung.
Wie oben schon erwähnt bringt ab einer bestimmten Pixelanzahl eine weitere Erhöhung der Anzahl keine Verbesserung mehr. Dies liegt an der Festgelegten Pixelgröße des Monitors. Sind die Bildpixel kleiner als die Bildschirmpixel so können sie einfach nicht mehr so klein dargestellt werden. Es hätte also nur Sinn die Pixelanzahl weiter zu vergrößern, wenn man später ins Bild hineinzoomen möchte.
Verkleinert man ein bestehendes Bild, wäre es folglich unsinnig die Pixelanzahl beizubehalten. Sie kann mit Verkleinerung des Bildes proportional mit verringert werden, ohne dass es bemerkt wird.
Bilder 256x256 128x128 64x64
Das 1-Bit Bild:
Mit einem Bit ist nur möglich S (0) oder W (1) zu unterscheiden.
Ein Bild würde dann so aussehen.
Bild SW:
Dadurch dass nur ein Bit benötigt wird um die Helligkeit der Pixel zu bestimmen, sind solche Bilder selbstverständlich sehr klein.
Mit 2 Bits wären dann 4 Töne möglich. (Weiß, Hellgrau, Dunkelgrau, Schwarz)
3 Bit: 8 Töne
4 Bit: 16 Töne
5 Bit: 32 Töne
6 Bit: 64 Töne
7 Bit: 128 Töne
8 Bit: 256 Töne
Bittiefe und Grautöne:
8-Bit Bild
Truecolor durch 24-Bit Farben:
Ein Farbbild setzt sich aus den 3 Primärfarben Rot, Grün und Blau zusammen. Durch additive Farbmischung (wie beim Fernseher!) können alle anderen Farben erzeugt werden. Für jede der 3 Primärfarben werden jeweils auch nur 8 Bit benötigt. Insgesamt sind also 24 Bit nötig um ein Echtfarbenbild (Truecolor) zu charakterisieren. Die Anzahl der möglichen Farben ist daher: 2^24=16.777.213 Farben = 256*256*256
Bis das fertige 3D-Bild auf dem Monitor erscheint, müssen einige mathematische Berechnungen durchgeführt werden. Um ein flüssiges Bild zu erhalten, müssen mindestens 30 Bilder pro Sekunde berechnet werden. Diese Berechnung geschieht in der sogenannten 3D-Pipeline. Diese Pipeline kann man wiederum um mehrere verschiedene Schritte unterteilen: Tesselation, geometrische Transformation und das Rendering. Nach diesen Berechnungen erscheint das Bild auf der Monitor. Die meisten 3D-Chips arbeiten nach dem folgenden Prinzip:
Anfangs ist die 3D Landschaft in Punkten angegeben
Tesselation: Anstatt alles als eine Ansammlung von Punkten zu handhaben, werden nun alle Objekte einer 3D-Welt mit Polygonen (hier: Dreiecke) dargestellt. Für ein Dreieck werden jeweils drei Punkte mit den Koordinaten x für die horizontale Position, y für die vertikale Position und z für den Tiefenwert benötigt. Mit diesen drei Punkten werden die Ecken des Dreiecks definiert. Je nach gewünschter Darstellung erhält dann jeder Punkt noch einen Farb- und/oder einen Transparenzwert.
Geometrische Transformation: Zum einen wird die Lage der Objekte relativ zum Betrachter neu erfasst, zum andern die Wirkung von allfälligen Lichtquellen auf die Objekte berechnet.
Rendering: Dieser Arbeitschritt ist der rechenintensivste und wird daher speziellen 3D-Grafikkarten überlassen. Die Aufgabe des Renderings besteht darin, die bis jetzt nur im Speicher des Computers befindlichen Zahlenkolonnen in ein realistisches Bild auf dem zweidimensionalen Computerbildschirm zu bringen. Der 3D-Eindruck darf dabei natürlich nicht verloren gehen. Das Rendering kann wiederum in mehrere Schritte unterteilt werden: Hidden Surface Removal / Clipping, Texture Mapping / Perspective Correction, Shading, Bildaufbau im Framebuffer, Ausgabe auf dem Monitor.
o Hidden Surface Removal: In diesem Arbeitsschritt werden alle momentan nicht sichtbaren (Teil-)Objekte der 3D-Welt abgeschnitten (Clipping) oder entfernt. Mit Hilfe von z-Sorting werden die Objekte ermittelt, die von einem anderen im Vordergrund verdeckt werden. Beispielsweise steht vor einem Auto ein großes Haus. Natürlich ist das Auto jetzt für den Betrachter nicht sichtbar. Der Computer berechnet dies folgendermaßen. Mit geraden Strahlen, die vom Betrachter ausgehen wird die ganze 3D-Welt abgetastet. Trifft der Strahl nun auf ein Objekt, speichert er dessen Tiefeninformation im z-Buffer. Der Strahl durchsticht das Objekt und läuft gerade weiter. Trifft er nun erneut auf ein Objekt, vergleicht er dessen Tiefeninformation und falls dieses Objekt weiter hinten (also verdeckt) ist und das Objekt im Vordergrund nicht durchsichtig ist, wird das weiter hinten liegende Objekt entfernt. Dies hat den Vorteil, dass viel weniger Daten gerendert werden müssen.
o Texture Mapping / Perspective Correction: Diesen Schritt könnte man vereinfacht als 'Kosmetik' beschreiben. Hier erhalten die Objekte die Texturen (Bilder), die Perspektive wird perfektioniert und der 'Treppcheneffekt' und andere unschöne Dinge werden ausgebessert.
Zuerst werden die Texturen an die Objekte angeklebt. Die dabei einfachste Methode ist das Point-Sampling. Je nach Entfernung wird beispielsweise nur jeder fünfte Farbwert einer Texture verwendet. Dies führt zu einem scheußlich klumpigen Aussehen der Objekte. Besser ist da schon das bi-lineare Texture Mapping. Dabei werden nun aus viel benachbarten Bildpunkten einer Texture (Texeln) neue Farbwerte berechnet. Dies führt zu einer Verwischung der sonst klobigen Texturen. Falls vorhanden, werden nun anhand der Tiefeninformation im z-Buffer verschieden detaillierte Texturen ausgewählt (mit verschiedenen Auflösungen, je näher, desto detaillierter). Diese Methode nennt man MIP-Mapping (MIP abk. für Multum In Parvum).
Bei schrägen Linien und gekrümmten Kanten von Objekten bildet sich vor allem bei niedrigen Auflösungen der sogenannte 'Treppcheneffekt' (Aliasing). Die Kanten erscheinen treppenförmig gezackt. Mit dem Anti-Aliasing-Effekt werden diese Treppchen ausgeglichen. Dieser Effekt kann auf mehrere Arten erreicht werden. Entweder man überblendet die benachbarten Pixel mit transparenten Pixeln mit der gleichen Farbe wie das Objekt, oder man interpoliert Mischpixel, d.h. man berechnet aus zwei benachbarten Farbwerten einen neuen.
o Shading: Bis jetzt wurden die in der geometrischen Transformation erhaltenen Daten von den Lichtquellen nicht berücksichtigt. Dazu gibt es nun mehrere mathematische Berechnungsmethoden. Beim Flat-Shading erhält jedes Dreieck einen Farbwert. Die führt dazu, das vor allem gewölbte Objekte recht eckig aussehen, dafür ist diese Berechnung sehr schnell durchgeführt.
Beim Berechnungsmodel des Computerwissenschaftlers Henri Gouraud, dem sogenannten Gouraud-Shading, erhalten alle drei Eckpunkte der Objekte einen eigenen Farbwert. Aus diesen drei Farbwerten werden dann die restlichen Punkte des Dreiecks berechnet, so dass ein fließender Farbübergang erreicht wird. Durch diese Methode erscheinen die Objekte bereits einigermaßen realistisch, da Rundungen nicht mehr eckig erscheinen.
Sind nun all diese Schritte beendet, so befindet sich ein fertiges Bild im Framebuffer, also in einem Zwischenspeicher. Dieser Zwischenspeicher ist notwendig, da je nach Anzahl der sichtbaren Objekte mehr oder weniger lang für die Berechnung des kompletten Bildes benötigt wird. Ohne diesen Zwischenspeicher würde die Bildwiederholzahl immer schwanken, was den Benutzer stark stören würde
Das fertige Bild gelangt nun mittels Flipping vom Frame-Buffer in den Videospeicher, also dem Speicher, dessen Inhalt auf dem Monitor angezeigt wird. Dieser Speicher wird ca. 75 mal pro Sekunde ausgelesen und auf dem Bildschirm dargestellt. Erst wenn wieder ein fertiges Bild im Framebuffer ist (ideal mind. 30 mal/Sek.), gelangt es in den Videospeicher und damit auf den Monitor!
Erklärung einiger Begriffe:
AGP: (Abk. für Accelerated Graphics Port) Eigentlich kein neuer BUS, sondern nur ein neuer Steckplatz für 3D-Grafikarten - doch irgendwie doch ein neuer BUS, muss doch die Architektur des PCI-Busses abgeändert werden. Entwickelt wurde das ganze von Intel. Durch den direkten Anschluss an den Hauptspeicher kann der Engpass, der früher oder später beim PCI-Bus entstanden wäre, beseitigt werden.
API: Abk. für Application Programming Interface; Ein API ist eine Schnittstelle zwischen Hard- und Software, an der sich die Programmierer orientieren, d.h. für die sie Ihre Spiele schreiben. DirectX ist beispielsweise so eine Schnittstelle. Das Programm kommuniziert nicht direkt mit der Hardware, sondern mit dem API, dieses leitet dann die Signale optimiert weiter zur Hardware.
FPS: (Frames per Second); Bilder pro Sekunde, Das menschliche Auge verarbeitet pro Sekunde ca. 15 Bilder. Um den Eindruck einer völlig flüssig bewegten Szenerie zu bilden, sind jedoch ca. 30 Bilder pro Sekunde nötig. Viele Benchmarkprogramme für Spiele, Video etc. geben die Leistung Ihres PC-Systems in fps an. Kinofilme laufen beispielsweise mit 24 fps; das Fernsehen arbeitet mit 25 fps.
Haupt | Fügen Sie Referat | Kontakt | Impressum | Nutzungsbedingungen