Das tecChannel 3D-Lexikon: A bis F

15.02.2001 von Bernhard  Haluschak und MARCO SPOERL 
Wer sich mit 3D-Spielen und -Grafik beschäftigt, stolpert immer wieder über diverse Fachbegriffe. tecChannel hat für Sie die wichtigsten Begriffe aus dem 3D-Grafikbereich zusammengestellt und erklärt sie detailliert

In diesem Beitrag haben wir folgende Begriffe rund um die 3D-Grafik alphabetisch geordnet und ausführlich erläutert:

Weitere Begriffe finden Sie unter:

tecChannel 3D-Lexikon: G bis R

Gouraud-ShadingKeyframe Interpolation / Vertex MorphingLens FlareMIP-MappingMotion BlurMotion CompensationPerspective CorrectionPhong-ShadingRAMDAC

tecChannel 3D-Lexikon: S bis Z

SDRAM / DDR-SGRAMShadow MappingSpecular LightingStencil BufferT-BufferTexturTexturkompressionTransform and Lighting / T&LTrilineares FilteringVertex SkinningZ-Buffering / Depth Buffer

Wir ergänzen das 3D-Lexikon laufend mit neuen Fachbegriffe. (hal)

Alpha-Blending / Color Key

Alpha-Blending ist die Kontrolle über die Transparenz eines Bildpunktes. Jeder Pixel hat drei Farbkanäle (RGB) für den roten, grünen und blauen Farbanteil. Oft kommt noch ein vierter Kanal, der Alpha-Channel, hinzu (RGBA). Dieser zusätzliche Kanal ist eigentlich eine Maske, die angibt, wie die Farbe des Pixels mit einem anderen Bildpunkt kombiniert wird, wenn diese sich überlagern. Der Alpha-Wert eines Pixels kontrolliert also, ob er transparent, durchscheinend oder solide ist. Ein niedriger Wert bedeutet, dass der Punkt transparent ist, wie es zum Beispiel bei einer Glasscheibe der Fall ist. Ein mittlerer Alpha-Wert ergibt einen durchscheinenden Pixel für farbiges Glas oder für Wasser. Ist der Alpha-Channel dagegen sehr hoch eingestellt oder auf dem Maximum, so ist der Bildpunkt nicht durchsichtig.

Eine leichte Variation des Alpha-Channels ist das Color-Key-Verfahren. Dabei handelt es sich um eine Technik, die bestimmte Texel einer Textur daran hindert, gerendert zu werden. Wenn eine Farbe in einer Texturemap dem des Color Key entspricht, so wird der entsprechende Punkt ignoriert. Dadurch wird dieser Teil der Textur transparent.

Ambient Light

Das Ambient Light bildet in der Computergrafik eine Komponente bei der Berechung von Beleuchtungsmodellen. Ganz simpel ausgedrückt ist es der Lichtanteil, der gleichmäßig aus allen Richtungen kommt. Genauer: Das Ambient Light ist das Licht, das von der Umgebung so sehr zerstreut wird, dass es unmöglich ist zu sagen, woher es eigentlich kommt beziehungsweise welche Richtung es hat. Wenn es auf eine Oberfläche trifft, streut es gleichmäßig in alle Richtungen.

Wird ein Raum indirekt beleuchtet, so hat dieses Licht einen hohen Ambient-Anteil. Ein Scheinwerfer im Freien dagegen hat einen sehr kleinen Anteil, weil erstens Großteile des Lichts gerichtet sind und zum Zweiten erreicht auf Grund des offenen Geländes nur wenig Streulicht das Auge des Betrachters. Die gleichmäßige, aber sehr eintönige Beleuchtung durch Ambient Light wird durch die zusätzlichen Diffuse und Specular -Komponenten verfeinert und realistischer.

Anisotropic Filtering

Die anisotrope Filterung (anisotrop = nicht in allen Richtungen hin gleiche Eigenschaften aufweisend) ist die technisch anspruchvollste und optisch beste Methode der Texturfilterung. Die einfacheren bi- und trilinearen Verfahren bieten die besten Ergebnisse bei Polygonen, auf die der Betrachter genau oder annähernd senkrecht blickt. Bei anderen Blickwinkeln treten dagegen Schwächen auf. Genau hier jedoch liegen die Stärken der anisotropen Methode. Aus Gründen der Perspektive verläuft die horizontale Ebene eines Objekts in den Bildschirm und ist dementsprechend verkürzt beziehungsweise verzerrt.

Das anisotrope Filter legt bei der Interpolation mehr Wert auf die horizontalen Samplepunkte. Man kann auch sagen, dass das bilineare Verfahren kreisförmig interpoliert, das anisotrope dagegen elliptisch. Der größte Nachteil ist der dafür notwendige Rechenaufwand beziehungsweise Datendurchsatz. Vier Interpolationspunkte pro Texel bei der bilinearen Filterung stehen acht oder mehr Punkte bei der elliptischen Methode gegenüber. Die dafür benötigte hohe Füllrate ist das Haupthindernis für eine Implementierung in Hardware. Dem gegenüber stehen jedoch qualitativ hochwertige und vor allem schärfere Ergebnisse.

Anti-Aliasing

Anti-Aliasing wird zur Kantenglättung eingesetzt. Es liegt in der digitalen Natur der Computer, dass die Grafikhardware eine Linie nicht ideal darstellen kann, sondern diese durch so genanntes Sampling durch eine Reihe von Pixel nur angenähert zeigt. Daraus entstehen unschöne Artefakte (Treppenstufen oder Jaggies), was im Allgemeinen als Aliasing bezeichnet wird. Auch der bekannte Effekt, wenn sich ein Wagenrad optisch in die falsche Richtung zu drehen scheint, wird Time-Aliasing genannt. Es gibt zwei Arten von Anti-Aliasing, die dieses Problem lösen: Temporal-Anti-Aliasing und Spatial-Anti-Aliasing, wobei das letztgenannte noch in Supersampling (oder Full Scene Anti-Aliasing) und Polygon-Filtering (beziehungsweise Edge-Anti-Aliasing) aufgeteilt ist.

Beim Supersampling, der am weitesten verbreiteten Methode, wird jeder Pixel in Subpixel unterteilt. Für jeden Punkt dieser Subpixelmaske (2x2 oder 4x4 Punkte groß) wird eine Farbe berechnet und anschließend auf Basis dieser Werte der Farbwert des eigentlichen Pixels interpoliert.

Die heutigen Grafikkarten benutzen vorwiegend zwei Implementierungen des Full-Scene-Anti-Aliasing. Bei der ersten Methode wird die Szene intern in einer höheren Auflösung gerendert und anschließend auf die benötigte Ausgabeauflösung heruntergerechnet. Für eine 2x2 große Subpixelmaske und eine gewünschte Auflösung von 800x600 wird intern also ein 1600x1200 großes Bild berechnet. Ein anderes Verfahren berechnet die Szene mehrmals (zum Beispiel 4 Durchgänge bei einer 2x2 Maske) und verschiebt dabei mit jedem Durchgang das Bild um ein kleines Stück. Jedes Zwischenergebnis wird in einen so genannten Accumulation Buffer addiert, dessen Inhalt das fertige Bild ergibt. Der Vorteil dieses vor allem bei OpenGL-Beschleunigern benutzten Verfahrens ist der geringe Speicherverbrauch. Es braucht selbst für eine 4x4 große Maske, die das beste Ergebnis liefert, nicht mehr Speicher als für eine Szene ohne Anti-Aliasing. Die selbe Technik benutzt auch der von 3Dfx entwickelte T-Buffer.

Beim Edge-Anti-Aliasing werden die Kanten von einzelnen Polygonen, Linien und Punkten geglättet. Auch hier wird zwischen den Farbwerten des Polygons und seiner Umgebung interpoliert, um einen weichen Übergang darzustellen.

Bilineares Filtering

Beim bilinearen Filtering werden die Texelfarben einer Textur interpoliert. Außerdem sind beim Texture Mapping die Größen des Zielpolygons und der Map selten identisch. Aus diesem Grund muss die Textur oft entweder verkleinert oder vergrößert werden. Bei der einfachsten Skaliermethode, dem Point Sampling, wird der Texel benutzt, der dem berechneten Punkt auf der Texture Map am Nächsten ist. Dies führt jedoch zu sehr pixeligen Grafiken, wie sie bei alten 3D-Spielen wie Doom oder Duke Nukem 3D auftraten.

Beim bilinearen Filtering dagegen wird nicht der Farbwert eines einzelnen Texels in Betracht gezogen, sondern der Durchschnitt eines 2x2 Punkte großen Feldes um den berechneten Texel ermittelt. Die zugewiesene Farbe ist also der gewichtete Mittelwert von 4 Pixeln. Der Vorteil dieses Verfahrens besteht darin, dass die Übergänge zwischen den Punkten nun nicht mehr abrupt und pixelig, sondern weich verlaufen - egal wie nah oder fern der Betrachter ist. Nachteilig ist, dass alle bilinear gefilterten Texturen einen recht verschwommenen Eindruck machen.

Diese Methode ist quasi der Standard in Sachen Texturfilterung und wohl alle Grafikkarten unterstützen das Verfahren in Hardware. Allerdings taucht dabei ein visuelles Artefakt namens Depth Aliasing auf. Wenn die Objekte immer weiter vom Betrachter entfernt sind, dann muss auch die Textur kleiner werden. Bei den Berechnungen stößt der Algorithmus an Grenzen, was eine Art Flackern hervorruft. Um dieses Phänomen zu verringern, können MIP-Mapping und das darauf aufbauende trilineare Filtering benutzt werden.

Bump Mapping

Bump Mapping ist eine spezielle Version des Texture Mapping. Hierbei wird der Eindruck vermittelt, dass eine Textur nicht glatt und unnatürlich wirkt, sondern eine raue beziehungsweise strukturierte Oberfläche hat. Dabei kommen hauptsächlich drei Verfahren zum Einsatz: Emboss Bump Mapping, Environment Bump Mapping und Dot Product Bump Mapping.

Beim Emboss Bump Mapping wird von der gewünschten Basistextur eine monochrome Version erstellt und diese in Richtung der Lichtquelle verschoben. Anschließend wird hiervon die Differenz zur ursprünglichen Monochromtextur ermittelt und das Ergebnis wieder an die ursprüngliche Position versetzt. Diese Textur (Bump Map) wird nun noch mit der Ausgangstextur verrechnet, wodurch auf dieser der Eindruck einer Struktur entsteht. Diese Methode ist eine so genannte per-vertex Operation, da der in Betracht gezogene Lichtvektor nur für jeden Eckpunkt des Polygons bestimmt wird - und dementsprechend ungenau ist.

Das Environment Bump Mapping dagegen berechnet das reflektierte Licht an jedem Texel mit Hilfe einer Environment Map. Auf dieser ist jeder Bildschirmpunkt mit seiner Intensität gespeichert. Diese Methode ist weitaus genauer und flexibler als das Emboss Bump Mapping. Ein großer Nachteil ist jedoch, dass diese Technik nicht mit dynamischen Lichtquellen zurechtkommt.

Noch realistischer sind die Ergebnisse mit dem von 3Dlabs entwickelte Dot Product Bump Mapping. Bei echtem Bump Mapping wird die Richtung aller Lichtquellen eines Pixels bestimmt und seine Farbe anhand des Skalarprodukts von Licht- und Normalenvektor verändert. Die Methode von 3Dlabs dagegen berechnet den Lichtvektor an jeder Ecke und interpoliert zwischen den anderen Eckpunkten, um einen Vektor für jeden Texel zu erhalten.

Clipping

Beim Clipping wird der Bereich einer Zeichenprimitive (Punkt, Linie, Polygon) bestimmt, der innerhalb eines bestimmten Gebietes, der so genannten Clipping Region, liegt. Dieser Bereich ist in der 2D-Grafik für gewöhnlich ein Fenster und in der 3D-Grafik ein View Volume. Dieser Bereich wird durch verschiedene Parameter bestimmt:

Alles außerhalb dieses Bereiches wird entfernt (clipped). Liegt eine Primitive komplett außerhalb, dann ist das Vorgehen simpel. Liegen allerdings nur Teile davon im Clippingbereich, dann müssen verschiedene Algorithmen die neu entstehenden Eckpunkte berechnen. Der beim Clipping oft entstehende Pop-up-Effekt, bei dem Objekte plötzlich aus dem Hintergrund auftauchen, kann durch Depth Cueing beziehungsweise Fogging verdeckt werden.

Cube Environmental Mapping

Mit Cube Environmental Mapping können Reflektionen auf Oberflächen in Echtzeit berechnet werden. Dieses Feature ist bereits in DirektX 7 und OpenGL 1.2 realisiert.

Um ein Objekt wird ein Würfel gelegt. Durch komplizierte Berechnungen kann man auf den Außenwänden des Würfels die Reflektionen des umgebenden Raumes abbilden und auf das Objekt legen. Es besteht nun die Möglichkeit, den Raum und den Gegenstand separat oder simultan zu bewegen. Auf diese Weise entsteht ein statischer oder dynamischer Eindruck der Szene.

Durch eine zweite Reflektionsrichtung (Secondary Lighting) erzeugt das Cube Environmental Mapping in Bild 8 Reflektionen, die von allen Seiten und aus allen Richtungen sehr natürlich wirken. Das bisher verwendete Sphere Environment Mapping hat nur eine Reflektionsrichtung. Außerdem ist es sehr schwierig und rechenintensiv diese Funktion in 3D-Applikationen umzusetzen und in Echtzeit darzustellen.

Depth of Field

Nimmt eine Kamera ein Foto auf, dann ist die Linse auf eine bestimmte Distanz fokussiert. Objekte, die näher daran oder weiter weg von diesem Punkt sind, erscheinen verschwommen. Ändert man den Fokus der Linse, dann können nur nahe oder entfernte Objekte schärfer dargestellt werden. Dieser Effekt wird als Depth of Field (DoF) bezeichnet. Da das menschliche Auge im weitesten Sinne ebenfalls nur eine Linse ist, unterliegen auch wir diesem Phänomen, selbst wenn wir diese Tatsache kaum bewusst wahrnehmen.

Praktischen Einsatz findet Depth of Field vor allem in der Filmbranche, wenn der Regisseur die Aufmerksamkeit des Zuschauers auf einen bestimmten Punkt lenken will. In einer Sequenz kann er so zum Beispiel die Szene auf den Hauptdarsteller fokussieren und in der nächsten auf das Geschehen im Hintergrund. Im Gegensatz dazu ist Echtzeit-Computergrafik für gewöhnlich immer durchgehend gestochen scharf, da sie nicht unter Distanzeinflüssen leidet und sowohl nahe als auch entfernte Objekte in Fokus hat. 3dfx hat als erster Hersteller von Grafikchips Depth of Field als einfach verwendbares Feature den Entwicklern im Rahmen ihres T-Buffers zur Verfügung gestellt.

Diffuse Lighting

Diffuse Lighting ist die Lichtkomponente für Materialien bei Beleuchtungsmodellen, die ihren Ursprung in einer Punktlichtquelle haben. Die nur von Ambient Light angestrahlten Objekte sind auf ihren Oberflächen immer genau gleich beleuchtet. Die Helligkeit ist dabei direkt proportional zur Leuchtintensität. Wenn ein Objekt jedoch von einer Punktlichtquelle erhellt wird, deren Lichtstrahlen von einem einzigen Punkt aus gleichmäßig in alle Richtungen verlaufen, variiert die Helligkeit auf dessen Oberfläche.

Die Helligkeit einer Oberfläche ist abhängig vom Einfallswinkel des Lichts. Steht die Lichtquelle genau senkrecht über einer Fläche, so ist diese maximal beleuchtet. Trifft Diffuse Light auf eine Oberfläche, dann wird es gleichmäßig in alle Richtungen gestreut. Dadurch erscheint es, unabhängig von der Position des Betrachters, immer gleichmäßig hell.

Dithering

Dithering ist eine Technik, bei der dem Betrachter mehr Farben vorgegaukelt werden, als tatsächlich zu sehen sind. Das Verfahren erzeugt bei monochromer Darstellung verschiedene Graustufen beziehungsweise bei Farbdruckern oder Displays mehr Farben als eigentlich in der Palette verfügbar sind. Der Effekt wird durch eine bestimmte Anordnung von Farbpunkten erreicht. Dabei helfen die Eigenschaften des menschlichen Auges, diese Punkte durch Unschärfe zu einem Bild zusammenzufassen.

Ein gutes Beispiel für Dithering ist das Halbtonverfahren im Zeitungsdruck. Durch die richtige Anordnung von schwarzen Punkten entsteht beim Betrachter der Eindruck eines Graustufenbilds. Der Vorteil dieses Verfahrens ist der geringe Speicherbedarf der Bildinformationen.

Fast Write

Diese Funktion ist nichts bahnbrechendes, denn sie ist schon in der AGP-2.0-Spezifikation beschrieben und für alle Grafikchip-Entwickler frei zugänglich. Der Vorteil von Fast Write ist eine schnelle Datenübertragung von der CPU zur Grafikkarte. Im Einzelnen sind das alle Datentransfers wie:

Die Funktionsweise und Vorteile von Fast Write kann man am Besten anhand eines Beispiels verdeutlichen. Zu Grunde liegt ein System mit 133 MHz FSB, DRDRAM -400 und AGP 4x mit Fast Write. Mit der Annahme, dass in Zukunft die 3D-Applikationen mindestens 900 MByte/s an Datentransferraten benötigen (10 Mio.Triangels/s mit einer Größe von 90 Bytes/Triangle), ergibt sich ein Modell nach Bild 11 und 12.

Bei einer Transferrate von 900 MByte/s benötigt man eine theoretische Speicherbandbreite von 1,8 GByte/s. Für den FSB und den AGP-Bus ist diese Übertragungsrate kein Problem, sodass einzig der Direct-Rambus mit 800 MHz bei einer Bandbreite von 1,6 GByte/s den Flaschenhals bildet und die Performance des Systems verringert.

In Bild 12 ist der Ablauf mit aktivierter Fast-Write-Option dargestellt. Es ist deutlich zu erkennen, dass der Datentransfer nur noch über den Chipsatz läuft und nicht über den Systemspeicher. Einen Datenengpass im Bereich des Speichers gibt es somit nicht.

Bei PC133-Speicher ist die Bandbreitenfrage ohne Fast Write noch kritischer, denn dieser vermag theoretisch maximal nur 1,06 GByte/s zu übertragen. Reduziert man die Datenrate allerdings auf das heutige Niveau von 3D-Spielen mit zirka 180 MByte/s (2 Mio. Triangels/s mit einer Größe von 90 Byte/Triangel), dann ist der Datendurchsatz des Speicherbusses auch ohne Fast Write vollkommen ausreichend.

Fillrate / Memory Bandwidth

Die Füllrate gibt an, wie viele Pixel eine Grafikkarte pro Sekunde tatsächlich in den Bildspeicher schaufeln kann. Bei einer Szene mit einer Auflösung von 1024x768 Punkten müssen in Sachen Fillrate zum Beispiel 786.432 Pixel pro Frame verschoben werden, was sich bei einer Framerate von 60 fps auf 47.185.920 Pixel erhöht.

Die Memory Bandwidth ist ein Maß für die Transferrate zwischen dem Grafikchip und dem Grafikspeicher. SDRAM und SGRAM haben eine Busbreite von 64 Bit. Bei einer Dualbus-Struktur werden daraus 128 Bit. Die Speicherchips haben einen gewisse Speichertakt zum Beispiel 200 MHz. Die theoretische Bandbreite ergibt sich dann aus Busbreite x Speichertakt. Dual Bank SGRAM mit 200 MHz hat also 128 Bits x 200 MHz = 3,2 GByte theoretische Memory Bandwidth. Diese Bandbreite wird für eine Vielzahl von Operationen verwendet wie Zugang zum Frame Buffer, Lesen und Schreiben des Z-Buffers sowie Zugriff auf den Texturspeicher.

Die Belastung des Grafikprozessors ist von vielen Faktoren abhängig wie zum Beispiel Farbtiefe und Genauigkeit des Z-Buffers.

Daraus ergibt sich: Die Füllrate und die Bandbreite sind letztendlich die entscheidenden Features, wenn es um die Leistung einer Karte geht. Denn egal wie schnell und wunderschön ein Grafikboard eine Szene intern berechnet, so bringt dies nichts, wenn es die errechneten Pixel nicht schnell genug darstellen kann.

Flat-Shading

Flat-Shading, auch bekannt als Constant Shading oder Faceted Shading, ist das Einfachste aller Schattierungsverfahren für Polygone. Es darf nicht mit den in Spielen verwendeten vorberechneten Verfahren (Lightmaps) verwechselt werden. Flat-Shading ist eine Echtzeittechnik und die Berechnung erfolgt dementsprechend erst zur Laufzeit. Bei diesem Verfahren wird ein Beleuchtungsmodell einmal verwendet, um einen einzigen Wert für die Schattierung eines Polygons zu ermitteln. Dieser Lichtwert wird anschließend für das gesamte Vieleck benutzt. Diese Technik ist vernünftig einsetzbar, wenn:

Nur leider wird keine dieser Bedingungen für eine realistische Darstellung in aktuellen Spielen zutreffen.

Um eine Szene einigermaßen glaubhaft mit Hilfe von Flat-Shading darzustellen, muss jedes Objekt mit einer sehr hohen Polygonanzahl gerendert werden, was die Performance deutlich verringert. Doch selbst dann können noch visuelle Artefakte, so genannte Mach Bandings entstehen, die den Gesamteindruck stören.

Fogging / Depth Cueing

Als Fogging wird eine spezielle Technik bezeichnet, bei der eine Szene mit Hilfe der im Z-Buffer abgespeicherten Daten in eine vordefinierte Farbe überblendet. Dadurch erzeugt man atmosphärische Effekte wie Nebel, Smog und Dunst, die vor allem in Spielen für die richtige Stimmung sorgen.

Fogging setzt man auch ein, um den Pop-up-Effekt beim Clipping zu kaschieren oder die Anzahl der sichtbaren Polygone zu reduzieren, um die Geschwindigkeit zu erhöhen.

Zur Darstellung von Nebel existieren zwei Verfahren: Vertex-based-Fog und Table-based- beziehungsweise Pixel-Fog. Beim erstgenannten wird zuerst der Deckungsgrad pro Eckpunkt eines Polygons berechnet und dieser anschließend über die gesamte Fläche interpoliert. Der Table-based-Fog wird unabhängig von den Eckpunkten kalkuliert. Statt dessen wird der Nebel pro Pixel berechnet - meistens mit Hilfe von Look-up-Tabellen, woher er auch seinen Namen hat.

Das Depth Cueing funktioniert im Grunde genommen genau wie das normale Fogging. Die Intensität der Objekte einer Szene nimmt mit der Distanz also ab, nur wird dabei nicht ins Weiße überblendet, sondern ins Schwarze. Auch das Depth Cueing hat die bereits oben genannten Vorteile, wie zum Beispiel Reduzierung der Komplexität einer Szene.

Full Scene Anti-Aliasing / FSAA

Bisher konnten die meisten Grafikkarten Anti-Aliasing entweder überhaupt nicht oder nur begrenzt in Hardware unterstützen.

Beim Edge-Anti-Aliasing handelt es sich eher um eine Softwarelösung, die der Karte mitteilt, welche Kanten sichtbar sind und geglättet werden müssen. Diese Arbeit muss zudem auch noch von der CPU übernommen werden.

Beim Super-Sampling, der bisher am meisten verbreitete Ansatz zum Full Scene Anti-Aliasing (die komplette Szene wird geglättet, nicht nur die Kanten), wird das Bild intern mit einer deutlich höheren Auflösung berechnet und anschließend erst auf die gewünschte Größe heruntergerechnet. Durch dieses - unechte - Anti-Aliasing entstehen aber teilweise unschöne Effekte, die das Bild verschwommen erscheinen lassen und zudem noch einen hohen Rechenaufwand benötigen.

3dfx hat mit dem VSA-100 den ersten Chip für den Consumer-Markt vorgestellt, der echtes Real-Time Full Scene Spatial Anti-Aliasing auf Sub-Pixel-Ebene ohne große Belastung der CPU anbietet. Dabei werden im T-Buffer mehrere Renderdurchgänge der Szene, die sich nur minimal voneinander unterscheiden, miteinander verrechnet. Da das Verfahren auf einer kleineren Einheit als Pixel (Sub-Pixel) und damit genauer arbeitet, entstehen selbst bei geringen Auflösungen bessere Ergebnisse als bei anderen Methoden. NVIDIA zog mit dem GeForce 2 GTS nach, erreicht aber noch nicht die Qualität von 3dfx.