Grundlagen der 3D-Grafik



Ähnliche Dokumente
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

2D-Transformationen. Kapitel Translation. 6.2 Skalierung

Satzhilfen Publisher Seite Einrichten

Zeichen bei Zahlen entschlüsseln

Professionelle Seminare im Bereich MS-Office

Zahlensysteme: Oktal- und Hexadezimalsystem

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

1. Sichtbarkeitsproblem beim Rendern einer dreidimensionalen Szene auf einer zweidimensionalen

Das Leitbild vom Verein WIR

1. Einführung Erstellung einer Teillieferung Erstellung einer Teilrechnung 6

5. Bildauflösung ICT-Komp 10

Im Original veränderbare Word-Dateien

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Erstellen von x-y-diagrammen in OpenOffice.calc

Anwendungsbeispiele Buchhaltung

Grundlagen der 3D-Grafik

Was meinen die Leute eigentlich mit: Grexit?

Beschreibung Regeln z.b. Abwesenheitsmeldung und Weiterleitung

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Whitepaper. Produkt: combit Relationship Manager 7. combit Relationship Manager -rückläufer Script. combit GmbH Untere Laube Konstanz

Theoretische Informatik SS 04 Übung 1

Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.

Funktionsbeschreibung. Lieferantenbewertung. von IT Consulting Kauka GmbH

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN

1 Aufgaben zu Wie funktioniert ein Computer?

Was man mit dem Computer alles machen kann

Tevalo Handbuch v 1.1 vom

Vorgestellt vom mexikanischen Rat für Fremdenverkehr

SICHERN DER FAVORITEN

Alle Schlüssel-Karten (blaue Rückseite) werden den Schlüssel-Farben nach sortiert und in vier getrennte Stapel mit der Bildseite nach oben gelegt.

IMAP Backup. Das Programm zum Sichern, Synchronisieren, Rücksichern und ansehen von gesicherten Mails. Hersteller: malu-soft

Lineare Gleichungssysteme

Was ist Sozial-Raum-Orientierung?

Kurzeinweisung. WinFoto Plus

Binärdarstellung von Fliesskommazahlen

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

Technische Informatik Basispraktikum Sommersemester 2001


GEVITAS Farben-Reaktionstest

Kapitel 3 Frames Seite 1

Dokumentation IBIS Monitor

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Flugzeugen einen Glanz aufmalen

SharePoint Demonstration

Arbeiten mit UMLed und Delphi

Zwischenablage (Bilder, Texte,...)

Navigieren auf dem Desktop

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Guide DynDNS und Portforwarding

10.1 Auflösung, Drucken und Scannen

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Manager. von Peter Pfeifer, Waltraud Pfeifer, Burkhard Münchhagen. Spielanleitung

DSO. Abtastrate und Speichertiefe

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

DIE IEDLE VON CATAN THEMEN-SET ZUM ARTENSPIE FÜR ZWEI SPIELER WIND & WETTER. Stefan Strohschneider Stephan Leinhäuser

Ein Buch entsteht. Ein langer Weg

Tutorial -

Advanced Rendering Interior Szene

Der Kalender im ipad

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen

Primzahlen und RSA-Verschlüsselung

Partitionieren in Vista und Windows 7/8

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Internationales Altkatholisches Laienforum

1. Einführung. 2. Archivierung alter Datensätze

Anleitung über den Umgang mit Schildern

PowerPoint: Text. Text

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Programm 4: Arbeiten mit thematischen Karten

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

Eisenbahnspiel. (Dokumentation)

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Einführung in die Algebra

1 topologisches Sortieren

Eigenen Farbverlauf erstellen

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen?

1) Farbsteuergerät in der Nikobus-Software unter Modul zufügen hinzufügen.

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Regeln für das Qualitäts-Siegel

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken

1 Mathematische Grundlagen

Anleitung Postfachsystem Inhalt

Bilder zum Upload verkleinern

Fitswork Kometenbilder aufaddieren Oliver Schneider,

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Leitfaden zur Einrichtung za-mail mit IMAP auf dem iphone

Software Engineering Klassendiagramme Assoziationen

Computeria Solothurn

Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender FHNW, Services, ICT

Transkript:

Fachgebiet Programmiermethodik Frau Prof. Dr. Claudia Leopold Seminar Programmierung von Grafikkarten Grundlagen der 3D-Grafik Marco Sebastião Dominik Boßdorf Christian Schule Seminarbetreuer Dipl. Inf. Björn Knafla

Inhalt INHALT... 2 AUFBAU EINER GRAFIKKARTE... 3 SPEICHER-INTERFACE... 3 Accelerator Graphic Port (AGP... 3 Peripheral Component Interconnect Epress (PCIe... 3 Geschwindigkeitsvergleich:... 4 VRAM... 4 Serial access memor (SAM... 4 Dnamic random access memor (DRAM... 4 GPU... 4 BILDSPEICHERTECHNIKEN... 4 AUSSICHTEN... 5 RENDERING PIPELINE... 5 DISPLAY LISTS... 6 PIXEL-OPERATIONS UND TEXTURE ASSEMBLY... 6 PER-VERTEX OPERATIONS AND PRIMITIVE ASSEMBLY... 6 Ekurs in die 3D-Theorie... 7 Transformation im kartesischen Koordinatensstem... 7 Verschiebung ( Translation... 7 Drehung (Rotation... 7 Streckung/Stauchung (Skalierung... 8 3D Transformationen mit homogenen Koordinaten... 8 Translation:... 8 Skalierung:... 9 Rotation:... 9 Fait:... Fehler! Tetmarke nicht definiert. RASTERIZATION... 9 PER-FRAGMENT OPERATIONS... Scissor Test... Stencil Test... Alpha Test... Depthbuffer Test... FRAMEBUFFER... Colorbuffer... Stencilbuffer... Accumulationbuffer... Depthbuffer...

Aufbau einer Grafikkarte Abbildung Grundsätlicher Aufbau einer Grafikkarte Die Grafikkarte besteht aus mehreren Komponenten. Zu aller erst sei das Bus Interface erwähnt, welches eine Schnittstelle um Proessor ur Verfügung stellt. Außerdem läuft hierüber die Kommunikation um Arbeitsspeicher. Die Daten, die über den Bus ankommen werden im VRAM abgelegt oder direkt von der GPU verarbeitet. Der VRAM ist aufgeteilt in wei Speicher bereiche: Dem Bildspeicher und dem Arbeitsspeicher. Das eigentliche Bild wird vom Bildspeicher im RAMDAC in ein monitortaugliches Signal aufbereitet und im Video-Out-Controller verstärkt, um um Monitor übertragen u werden. Speicher-Interface Accelerator Graphic Port (AGP 2 Der AGP-Port ist ein speielles Interface, der durch eine architektonische Veränderung (siehe Abbildung 2 3 es ermöglichte Daten direkt mit dem Proessor und dem Arbeitsspeicher ausutauchen und die Grafik musste sich den Bus nicht mehr mit den anderen Erweiterungskarten teilen. Dies ist notwendig geworden, um den Datenhunger damals aufkommender Grafikkarten u stillen. Weiter wurde Abbildung 2 AGP-BUS der Bußtakt verdoppelt auf 66Mh und in Richtung Grafikkarte konnten bis u 8 (bei AGP 8 Datenworte pro Takt übertragen werden. Peripheral Component Interconnect Epress (PCIe 4 Im Gegensat u AGP, welches im Grunde eine direkte Weiterentwicklung u PCI darstellt ist PCIe eine vollkommene Neuentwicklung. Die Busarchitektur ist nun als Stern realisiert und die Karten sind über einen Switch angebunden, der auch die Kommunikation untereinander erlaubt. Daten werden auch nicht mehr parallel übertragen sondern seriell, was es ermöglicht (& notwendig macht den Takt deutlich u erhöhen (,25Gh. Daraus ergibt sich pro Lane (Beeichnung für eine bidirektionale serielle Verbindung ein Durchsat von 23MBte/s. Um die Bandbreite noch weiter u erhöhen kann man bis u 32 Lanes an eine PCIe Karte koppeln. Bei aktuellen Grafikkarten werden aktuell 6 benutt. Abbildung 3 PCIe-Bus

Geschwindigkeitsvergleich: PCI AGP PCIe 32 Bit 33 MBte/s 266 MBte/s 23 MBte/s 64 Bit 266 MBte/s 2 532 MBte/s 4 93 MBte/s 4,6 Gbte/s 8,9 GBte/s 8 2, GBte/s 6 3,7 GBte/s 32 7,5 GBte/s VRAM 5 Auch als dual ported RAM beeichnet. Herausragend ist hier die Fähigkeit simultane Schreibe- und Leseoperationen u ermöglichen indem man getrennte Ein- und Ausgabeleitungen nahm. Serial access memor (SAM Ist ein sequentiell aufgebauter Speicher. Die Zugriffsreihenfolge auf den Speicher erfolgt immer nach der gleichen Reihenfolge. Meist ist dieser Speichertp als Schieberegister implementiert. Die Einschränkung der nicht vorhandenen Adressierung ist auch gleicheitig sein Vorteil. Man spart dadurch Zeit, und prädestiniert ihn für den Gebrauch als Bildspeicher. Dnamic random access memor (DRAM Dieser Speicherist frei Adressierbar und wird für die Bildsnthese genutt. Des Weiteren werden hier auch Teturen & ähnliches abgelegt. GPU 6 Die GPU ist das eigentlich Herstück der Grafikkarte, sie besteht aus mehreren Einheiten in der die einelnen Operationen ausgeführt werden. Zuerst kommen die Kommando-, Tetur- und Verte- Daten in den Buffer geschrieben. Der Kommando Stream wird von der CPU ereugt und enthält Informationen darüber wie die Grafikkarte u initialisieren, also wie die internen Zustände in der GPU u setten sind (dies beeinflusst maßgeblich wie die u verarbeitenden Daten manipuliert werden und enthält Referenen u den Abbildung 4 GPU-Block-Diagramm, Geforce 6 benötigten Tetur- und Verte- Daten. Die Daten werden dann gemäß der Rendering Pipeline bearbeitet, und im Bildspeicher abgelegt. Bildspeichertechniken 7 Wie wir schon wissen hält der Bildspeicher ein digitales Abbild des Monitorbildes. Die GPU legt dort die neuen berechneten Bilder ab. Die der RAM-DAC 8, dann für den

Monitoraufbereitet. Dabei kann es u so genannten Tearing Effekten kommen. Dabei wird im oberen Bildschirmbereich ein Teil des Bildes angeeigt und im unteren bereits das nächste. Um dies u vermeiden hat man Vsnc 9 eingeführt. Hierbei hat der RAMDAC während der Aneige eklusiven Zugriff auf den Bildspeicher. Nachdem das lette Piel auf den Bildschirm geeichnet würde, kann die GPU das neue Bild im Bildspeicher ablegen. Bei besonders aufwendigen Bild-Berechnungen führt dies nun u einem starken flackern. Um dem entgegenuwirken führte man eine Doppelpufferung ein. Hierbei ist der Bildspeicher doppelt vorhanden, aufgeteilt in Front- (für den RAMDAC und Backbuffer (für den Bildaufbau der GPU. Nachdem die GPU das neue Bild aufgebaut hat wird Back- & Frontbuffer in ihrer Funktion vertaucht (Bei deaktivierten Vsnc, bei aktiviertem VSnc wird gewartet bis der RAMDAC das aktuelle Bild fertig geeichnet hat, um Tearing u vermeiden. Um den Leistungsverlust bei eingeschaltetem Vsnc u vermeiden, hat man die Dreifachbufferung eingeführt. Hierbei hat die GPU noch einen weiten Backpuffer ur Verfügung, in dem er die Berechnung des nächsten Bildes beginnen kann, ohne auf das Vsnc u warten. Bei diesem Verfahren treten keine (bw. kaum Leistungsverluste auf. Aussichten Die Leistung der CPU steigt ureit um 7%, die des Video-Speichers um 25, und die Lateneiten des Speichers sinken um 5%. Da man davon ausgehen kann das diese Größenordnung auch in Zukunft so bleibt. Sprich die Leistung der GPU schneller unimmt, als die Fähigkeiten des Speichers, muss man dafür sorgen, das Zugriffe auf den Speicher minimiert werden. Daraus folgt dass das heute eingesette Streamingmodel (aufbauend auf Pipelining immer wichtiger wird. Hierbei gibt es wei Grundparadigmen: Kernel (ein auf eine speielle Aufgabe optimierter Kern und Streams (Daten werden von einem Kernel um nächsten weitergereicht um eterne Speicherugriffe u minimieren. Rendering Pipeline 2 Nachdem wir nun den grundsätlichen Aufbau einer Grafikkarte gesehen haben, werden wir uns nun dem eigentlichen 3-D Verarbeitung uwenden. Das Rendern geschieht in der Rendering Pipeline die wir uns im Detail ansehen werden. Als Beispiel werden wir im Folgendem die OpenGL Rendering Pipeline nehmen.opengl stellt eine Programmierschnittstelle ur Hardware dar und wird heututage von allen Grafikkarten unterstütt. Entwickelt wurde OpenGL von SGI auf Basis von IRIXGL und wird heute durch das Architekture-Review-Board verwaltet, welchem viele wichtigen Unternehmen der IT- Branche angehören. Bei OpenGL handelt es sich um einen Zustandsautomaten, was im Grunde einfach bedeutet, dass man Zustände hat die man an- und abschalten kann. Wenn ein solcher Zustand, repräsentiert durch eine Zustandsvariable, einmal eingeschaltet ist, bleibt er so lange bestehen, bis man ihn epliit ändert. Als Beispiel für solch einen Zustand kann man.b. die aktuelle Farbe nehmen. Hat man in einer Zeile Code die Farbe geändert, so wird von diesem Punkt an jeder weitere Punkt in dieser Farbe geeichnet, solange bis man die Zustandsvariable wieder ändert.

In der Abbildung unten sieht man nun eine schematische Abbildung dieser Pipeline, die wir nun Schritt für Schritt durchgehen werden. Abbildung 5 3 Renderingpipeline Als Ausgangsdaten für den Weg durch die Pipeline besteht unächst einmal ein Unterschied wischen Pieldaten und Vertedaten. Als Pieldaten beeichnet man Bilder oder Piel, als Verte-Daten geometrische Daten wie um Beispiel Linien oder Polgone, die durch ihre Eckpunkte (verticles beschrieben werden. Beide Tpen von Ausgangsdaten gehen unächst ihre eigenen Wege, bei Piel Daten den Weg der Pielpipeline, bei geometrische Daten den der Geometriepipeline, bis sie auf der Stufe der Rasteriation wieder usammentreffen. Displa lists Wie die Grafik veranschaulicht, gibt es 2 Wege, die die Piel- und Vertedaten gehen können. Entweder sie gehen jeweils direkt in ihre jeweilige Stufe der Pipeline, oder sie machen einen Umweg über die Displa-List. Displalists dienen im Grunde als Zwischenspeicher für OpenGL-Befehle. So können diese um Beispiel wieder verwendet werden. Wenn die Displalists nicht verwendet werden, spricht man vom immediate-mode Piel-operations und Teture assembl Die nächste Stufe der Pipeline, den die Pieldaten erreichen, ist die Stufe der Piel operationen. Hier werden die Pieldaten entpackt und eventuell skaliert um dann in der Stufe der Teturen assembl schließlich als Tetur- Objekt gespeichert u werden. Per-verte operations and primitive assembl Für diesen Schritt der Pipeline bietet sich um besseren Verständnis das in [] genutte Beispiel der Kamera-Analogie u Benuten. Was im Wesentlichen in diesem Schritt der Pipeline passiert, lässt sich in 4 Schritten beschreiben. Zu Anfang wird das uvor durch Geometriedaten beschriebene Objekt in der Sene positioniert und die Kamera eingerichtet. Das gane geschieht mit Hilfe von Matrioperationen wie Translation, Rotation und Skalierung. Diese Operationen werden in

der Modelview Matri gespeichert, Als Ergebnis dieses Schrittes erhält man die sog. Ee- Coordinates. Als nächster Schritt findet die Projektion statt. Am Beispiel der Kamera kann man sich diesen Schritt als die Wahl der Kameralinse vorstellen. Die Projektion-Matri legt die Form der so genannten viewing-volume fest. Hier wird, einfach ausgedrückt, alles abgeschnitten, was nicht im Sichtbereich der Kamera liegt. Diese Bereiche werden durch 6 Clipping-planes beschrieben. Des Weiteren wird in dieser Stufe beschrieben, wie die Objekte auf den Bildschirm gebracht werden. Im Wesentlichen stellt OpenGL wei Tpen von Projektionen bereit. Zum einen perspective projection, in der Objekte, die sich weiter von der Kamera entfernt befinden, perspektivisch korrekt kleiner dargestellt werden, um Anderen gibt es noch die orthographic projektion, wo sich die Größe der Objekte mit wachsender Entfernung nicht ändert. Als Ergebnis dieser Stufe erhalten wir Clipping Koordinaten. Nun folgen noch die Schritte Perspective Division um die Koordinaten u normalisieren und schließlich die Viewport Transformation, in welcher der Zeichenbereich definiert wird. Abbildung 6 4 Geometriepipeline Ekurs in die 3D-Theorie 5 Transformation im kartesischen Koordinatensstem Verschiebung ( Translation Der Punkt P (,, soll um den Vektor a r ( a, a, a in den Punkt P (,, verschoben werden. Bei der Verschiebung wird jeder Komponente des Punktes P der entsprechende Wert im Vektor a r hin u addiert. P P + ar ( + a, + a, + a Drehung (Rotation Sei Q ein Punkt im kartesischen Koordinatensstem. Eine Transformation Rot q ( θ, die jedem Punkt P des Koordinatensstems einen Punkt P uweist, so dass die Gerade QP und QP den Winkel θ einschließen heißt Rotation um Q. Ein positiver Wert für θ steht für eine Rotation gegen den Uhreigersinn, eine negativer Wert mit dem Uhreigersinn. Wir betrachten hier uerst die Rotation um den Ursprung im 2-dimensonialen kartesischen Koordinatensstem. Die Linie vom Ursprung u Punkt P hat einen Winkel φ ur Achse

( siehe Abbildung. Ist r der Abstand von P und P um Ursprung, dann gilt: P (, ( r * cos (φ, r * sin (φ ; P (, ( r * θ + φ, r * θ + φ Mit dem Additionstheoremen für Cosinus und Sinus sin ( +β β+ β ; cos ( + β β β erhält man: r * θ * φ r * θ * φ * θ * φ r * θ * φ + r * θ * φ * θ + * φ Die ugehörige Transformationsmatri ( Rotationsmatri ist: cos Θ Rot ( Θ sin Θ sin Θ cos Θ P P Streckung/Stauchung (Skalierung Der Punkt P (,, soll um den Vektor sr ( s, s, s skaliert werden. Die Skalierung ähnelt der Multiplikation eines Vektors mit einem Skalar. Hier kann jedoch der Faktor mit dem jeweils die Komponenten multipliiert werden unterschiedlich sein. Eine Skalierung mit einem Faktor s > ergibt eine Vergrößerung, ein Faktor s < aber > ergibt eine Verkleinerung. Wenn der Faktor s < wird, ergibt sich eine Spiegelung am Ursprung. In diesem Fall ergibt eine Faktor s < - eine Vergrößerung und ein Faktor s < aber > - eine Verkleinerung. s P ( * s, * s, * s ; s s θ φ Die oben beschriebenen Transformationen erfüllen ihren Zweck wenn es darum geht einelne Veränderung auf grafische Objekte anuwenden. Jedoch sind damit nur einfache Verschiebungen und Transformationen um festgelegte Bestandteile des Koordinatensstems, also Ursprung und Koordinatenachsen, möglich. Selbst wenn eine einfache Translation mit einer anderen Transformation, um Beispiel einer Drehung, verketten werden soll, ist eine Addition und eine Multiplikation nötig, welche nicht in einer Matri usammengefasst werden können. Dies führ dau das Operationen wie die Drehung um eine beliebige Achse nicht in einer Matri kombinierbar sind. 3D Transformationen mit homogenen Koordinaten Translation:

Die Verschiebung eines Punktes P(,, um den Translationsvektor T(t,t,t ergibt sich in Matrischreibweise: Hierbei gilt wei hintereinander ausgeführte Translationen sind additiv. Skalierung:. Eine Streckung bw. Stauchung (Skalierung mit den Faktoren s,s,s kann durch folgende Matrimultiplikation durchgeführt werden: Ist ein Skalierungsfaktor kleiner, dann wird eine Stauchung entlang der betreffenden Achse durchgeführt. Wenn der Skalierungsfaktor größer als ist wird eine Vergrößerung durchgeführt. Zwei aufeinander folgende Skalierungen sind multiplikativ. Rotation: Im rechtshändigen Koordinatensstem ergeben sich abhängig von der Achse folgende Rotationsmatien: Drehung um die Achse: Drehung um die Achse: Drehung um die Achse: Die Vorteile von homogenen Koordinaten liegen um einen in der einfachen Möglichkeit verschieden Transformationen durch Multiplikation der einelnen Matrien durchuführen, wie auch in der Möglichkeit diese in relativ einfacher in Hardware u realisieren, weil man nicht mehr wischen Addition und Multiplikation unterscheiden muß. Rasteriation In dieser Stufe der Pipeline werden Pieldaten und Geometriedaten in Fragmente umgewandelt. Ein Fragment entspricht der rechteckigen Fläche eines Piels im Frambuffer. Jedes Fragment enthält Informationen über die jeweilige Position, Farbe, Alphawert und Tiefenwert (-wert. Auch werden hier die verticles u Linien verbunden und Flächen gefüllt. s s s t t t

Per-fragment operations Nachdem alle Objekte nun als Fragmente vorliegen, werden schließlich verschiedene Operationen auf diese Fragmente angewendet und außerdem können noch verschiedene Tests durchlaufen werden. Alle Operationen und Tests dieser Stufe können wiederum vom Programmierer epliit ein- und ausgeschaltet werden. Zum einen werden nun Nebeleffekte in die Fragmente eingerechnet. Einfach ausgedrückt bekommen vom Betrachter weiter entfernte Fragmente einfach mehr grau mit eingemischt als weiter vorne liegende. Des Weiteren werden eventuelle Teturen aus der Teture-assembl gelesen die Farbwerte der Fragmente angeglichen. Nun werden auf die Fragmente noch folgende Tests durchgeführt, bevor sie endlich im Colorbuffer geschrieben werden. Scissor Test Hierbei kann ein rechteckiger Bereich in der Ausgabe definiert werden, in dem nicht geeichnet werden soll. Liegt ein Fragment innerhalb dieses Bereiches, wird es verworfen. Stencil Test Der Stencil-Test ist im Wesentlichen eine erweiterte Form des Scissor Tests, bei dem der Bereich nicht Rechteckig ist, sondern durch eine globale Bitmaske definiert wird. Alpha Test Fragmente werden anhand ihres Transparen-Wertes im Vergleich u einem Referenwert verworfen oder nicht. Depthbuffer Test Hier werden die Tiefenwerte (-Werte der Fragmente verglichen. Das ist wichtig, um die Sichtbarkeit von Objekten u testen. Dadurch werden weiter im Raum liegende Fragmente, die von davor liegenden Fragmenten verdeckt werden, verworfen. Framebuffer Der OpenGL Frambuffer besteht aus 4 Puffern, wobei der Betrachter am Ende eigentlich nur die Farbinformationen u Gesicht bekommt, die im Colorbuffer gespeichert werden. Colorbuffer Die Farb- und Alpha-Werte werden hier für jedes Fragment gespeichert. Stencilbuffer Informationen ur Maskierung der einelnen Fragmente. Accumulationbuffer Erweiterter Colorbuffer in den allerdings nicht direkt geschrieben werden kann. Kann benutt werden um beispielsweise Effekte wie Antialising oder Tiefenunschärfe u realisieren. Depthbuffer Tiefeninformationen u jedem Fragment.

http://www.elektronik-kompendium.de/sites/com/bilder/569.gif 2 http://www.elektronik-kompendium.de/sites/com/323.htm 3 http://www.elektronik-kompendium.de/sites/com/bilder/323.gif 4 http://www.elektronik-kompendium.de/sites/com/945.htm 5 http://de.wikipedia.org/wiki/vram 6 GPUGems 2, Matt Pharr & man others ; Kapitel 29 & Kapitel 3 7 http://de.wikipedia.org/wiki/dreifachpufferung 8 http://www.gotfrag.com/portal/stor/29627/ 9 http://de.wikipedia.org/wiki/vsnc http://de.wikipedia.org/wiki/doppelpufferung http://de.wikipedia.org/wiki/dreifachpufferung 2 OpenGL Programming Guide; Fifth edition; b OpenGL Architecture Review Board 3 http://www.cs.kent.edu/~farrell/graphics/opengl/openglprog.2/opengl/render.html 4 http://www.opengl.org/documentation/red_book/ 5 Lehrbuch der Grafikprogrammierung; Klaus Zeppenfeld; Kapitel; Lehreinheit 3 & 4