Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

4.1 Farbmodelle Farbe ist ein wesentlicher Bestandteil realistischer Computer- grafik. Dieses Unterkapitel beschreibt die quantitativen Aspekte von Farbe,

Ähnliche Präsentationen


Präsentation zum Thema: "4.1 Farbmodelle Farbe ist ein wesentlicher Bestandteil realistischer Computer- grafik. Dieses Unterkapitel beschreibt die quantitativen Aspekte von Farbe,"—  Präsentation transkript:

1 4.1 Farbmodelle Farbe ist ein wesentlicher Bestandteil realistischer Computer- grafik. Dieses Unterkapitel beschreibt die quantitativen Aspekte von Farbe, auf denen jegliche Verarbeitung von Farbinformationen während des Renderings beruht. Fragestellungen: - Wie kann man eine bestimmte Farbe exakt spezifizieren?  Farbräume, Farbmodelle Wie viele verschiedene Farben können durch eine Grafikhardware spezifiziert werden?  technische Realisierbarkeit Wie exakt kann eine exakt spezifizierte Farbe auf einem Ausgabegerät angezeigt werden?  geräteabhängige Farbräume

2 4.1 Farbmodelle Hierarchien bekannter Farbmengen
A: Menge aller vom Menschen wahrnehmbaren Farben B: Menge aller von einem Ausgabe- gerät (z. B. Monitor) darstellbaren Farben – dies ist eine Untermenge von A C: Menge aller von einem Programm spezifizierbaren Farben – beschränkt durch die Grafikhardware (Bildspeicher) 24 Bit/Pixel  Farben – i. a. Untermenge von A, enthält aber auch Elemente von B\A Ebener Schnitt durch den drei- dimensionalen Farbraum. Jeder Punkt entspricht einer Farbe.

3 4.1 Farbmodelle Dreidimensionaler Farbraum
Der traditionellen Beschreibung von Farben durch Namen mangelt es naturgemäß an Exaktheit – Aschgrau, Steingrau, Mausgrau, ... Eine präzise Festlegung erhält man erst durch eine objektive quantitative Spezifikation. Physikalisch gesehen ist eine Farbe eine bestimmte Energieverteilung im elektromagnetischen Spektrum zwischen 400 und 700 Nanometern Wellenlänge. Anhand physikalischer Experimente und Untersuchungen der physiologischen Farbwahrnehmung durch das menschliche Auge gelangte man zur Erkenntnis, dass nahezu alle Farben, die das Auge unterscheiden kann, auf eine additive Mischung dreier Grundfarben zurückgeführt werden können.

4 4.1 Farbmodelle Dreidimensionaler Farbraum (cont.)
Definiert man die zu mischenden Anteile z. B. der Grundfarben Rot, Grün und Blau durch ein Tripel (r, g, b) von Gewichts- faktoren, so lässt sich eine bestimmte Farbe C mittels C = r R + g G + b B exakt spezifizieren. Dies ist jedoch bei weitem nicht die einzige Möglichkeit, einen dreidimensionalen Farbraum zu definieren. Je nach Anforderung können verschiedene standardisierte Farbräume (Farbmodelle) verwendet werden, z. B. RGB: traditioneller Farbraum für Computergrafik, Monitore, ... HSV: erleichtert die intuitive Farbauswahl CIE: internationaler Standard zur Farbspezifikation CMY: subtraktives Farbmodell für die Drucktechnik CIE: Commission Internationale de l‘Eclairage

5 4.1 Farbmodelle RGB-Farbmodell
verwendet die Grundfarben Rot, Grün und Blau zur additiven Farbmischung Beschreibung einer Farbe durch ein Tripel (r, g, b) von Gewichtsfaktoren mit Es gilt: (0, 0, 0) = Schwarz (1, 1, 1) = Weiß (1, 0, 0) = Rot (0, 1, 0) = Grün (0, 0, 1) = Blau (0, 1, 1) = Cyan (1, 0, 1) = Magenta (1, 1, 0) = Gelb Im Rechner: z. B. 8 Bit pro Grundfarbe, d. h die Menge aller spezifizierbaren Farben wird im 3D-Raum durch einen Würfel repräsentiert („Farbkörper“) – dieser deckt jedoch nicht den gesamten wahrnehmbaren Farbraum ab

6 4.1 Farbmodelle RGB-Farbmodell (cont.) R B G RGB-Farbwürfel

7 4.1 Farbmodelle RGB-Farbmodell (cont.)
- Das Modell ist bezüglich der Farbwahrnehmung nicht linear: Betrachtet man eine typische Farbauflösung von 8 Bit pro Grundfarbe (sog. True Color), so existieren im Farbwürfel Regionen, in denen benachbarte Punkte für das Auge denselben Farbeindruck hervorrufen. In anderen Regionen hingegen sind die Farben benachbarter Punkte für das Auge sehr wohl voneinander unterscheidbar. - Für den Anwender ist es mitunter recht schwierig, zu einer gewünschten Farbe (z. B. Kastanienbraun) ein entsprechendes (r, g, b)-Tupel zu ermitteln oder eine Farbe beispielsweise ein wenig abzuschwächen (erfordert ungleiche Änderungen von r, g und b).  HSV-Farbmodell

8 4.1 Farbmodelle HSV-Farbmodell
entwickelt zur Unterstützung einer intuitiven Farbauswahl (wahrnehmungsorientiertes Farbmodell) der Farbkörper im 3D-Farbraum ist eine Pyramide mit sechseckiger Grundfläche verwendet „Zylinderkoordinaten“ Hue: Farbe („Farbfamilie“) als „Farbwinkel“ in Grad: Saturation: Sättigung: (Verkleinerung addiert Weiß) Value: Helligkeit: (Verkleinerung addiert Schwarz) Cyan

9 4.1 Farbmodelle Zusammenhang zwischen HSV- und RGB-Modell:
Die Grundfläche der HSV-Pyramide entsteht aus dem RGB- Würfel durch Projektion entlang der Raumdiagonale von Weiß nach Schwarz auf eine dazu senkrecht stehende Ebene. Es ergeben sich folgende korrespondierende Punkte: Bemerkung: Im HSV-Modell besitzen Komplementärfarben eine Winkeldifferenz von 180° im H-Wert RGB Farbe HSV (1, 0, 0) Rot (0, 1, 1) (1, 1, 0) Gelb (60, 1, 1) (0, 1, 0) Grün (120, 1, 1) Cyan (180, 1, 1) (0, 0, 1) Blau (240, 1, 1) (1, 0, 1) Magenta (300, 1, 1)

10 4.1 Farbmodelle Zusammenhang HSV- und RGB-Modell: (cont.)
Schreitet man im RGB-Würfel entlang der Hauptdiagonale von Schwarz nach Weiß, so kann man in jedem Punkt P dieser Diagonale einen Sub-Würfel wie folgt definieren: - die Hauptdiagonalen der Würfel fallen zusammen - eine Ecke des Sub-Würfels liegt bei Schwarz = (0, 0, 0) , die gegenüberliegende Ecke liegt bei P - der Sub-Würfel liegt im Innern des RGB-Würfels Somit definiert jeder Sub-Würfel bei Anwendung der oben beschriebenen Projektion entlang der Hauptdiagonale ein Sechseck, das einem Schnitt durch die HSV-Pyramide für V = const. entspricht. (Die Hauptdiagonale des RGB-Würfels entspricht also der V-Achse der HSV-Pyramide.)

11 4.2 Visibilitätsverfahren
Motivation: - Die grundlegende Modellierung unserer Objekte besteht in letzter Konsequenz aus planaren Polygonen, meist aus Vier- oder Dreiecken. - Das Dreieck ist die favorisierte Form, denn ein Dreieck hat eine eindeutige Normale, die anzeigt, wo das Dreieck „hinzeigt“. Ein Viereck nicht? - Den Prozess, der aus der mathematischen Beschreibung, beispielsweise einer Kugel, eine Menge von Dreiecken produziert, nennt man tesselation, triangulation bzw. „Tesselation“, „Triangulierung“ Vorsicht: Ein Viereck muss nicht planar sein!

12 4.2 Visibilitätsverfahren
Motivation: (cont.) - Die einfachste Form, unsere Objekte darzustellen (zu rendern) ist die Wireframe-Darstellung – wir zeichnen lediglich die Kanten der Polygone. Bem.: - Wireframe-Darstellung mit Darstellung aller Kanten, d.h. auch der (teilweise) verdeckten Kanten von Objekten ist zwar trivial, die Darstellung einer 3D-Szene wirkt allerdings nicht wirklich räumlich -> visual cluttering - Wireframe-Darstellung mit Darstellung nur der wirklich sichtbaren Kanten führt zu sog. hidden-line-Algorithmen, die absolut nicht mehr trivial sind – man muss sich nun um die Sichtbarkeit / die Visibilität Gedanken machen!

13 4.2 Visibilitätsverfahren
Ziel der Visibilitätsverfahren ist die möglichst exakte Bestimmung der von einem gegebenen Blickpunkt aus sichtbaren bzw. unsicht- baren Teile der darzustellenden Szene. Wünschenswert ist eine hohe Interaktionsrate, so dass Eingaben des Benutzers sich direkt auf die Darstellung auswirken. Im günstigsten Falle ist sogar eine Echtzeitausgabe der Szene möglich. Einteilung der Verfahren: - Objektraumverfahren geräteunabhängig, Genauigkeit ist Maschinengenauigkeit Bildraumverfahren geräteabhängig, Genauigkeit ist Auflösung des Ausgabegerätes

14 4.2 Visibilitätsverfahren
Unsichtbarkeit bzw. Verdeckungen treten auf, wenn bei der Projektion der dreidimensionalen Szene auf die Bildebene unterschiedliche Objektteile auf dieselbe Stelle abgebildet werden. Sichtbar sind diejenigen Objektpunkte, die dem Auge des Betrach- ters am nächsten gelegen sind. Daher ist bei der Darstellung nicht nur die (x, y)-Koordinate in der Bildebene zu berücksichtigen, sondern auch die Tiefenrelation der Szene (z-Koordinate). Bem.:

15 4.2 Visibilitätsverfahren
Begriff: Kohärenz „Ausnutzung lokaler Ähnlichkeiten“ Beispiele: Flächenkohärenz: Eigenschaften benachbarter Punkte auf einer Fläche ändern sich oft nur unwesentlich, z. B. Farbe Tiefenkohärenz: Die Tiefe z(x,y) auf einer Fläche kann oft inkrementell berechnet werden

16 4.2 Visibilitätsverfahren
Back-Face-Culling Die Entfernung verdeckter Flächen und Linien kann sehr aufwendig sein. Es erweist sich daher als günstig, mit einem möglichst einfachen Test das Problem möglichst stark zu vereinfachen, bevor kompliziertere Verfahren eingesetzt werden. Einen ebenso einfachen wie wirkungsvollen Ansatz stellt das Back-Face-Culling dar: In Abhängigkeit von der Position des Betrachters werden die Rückseiten undurchsichtiger Körper entfernt, da diese natur- gemäß nicht sichtbar sind. Wir entscheiden auf Grund der Normalen, welche Polygone von uns „wegsehen“, diese werden nicht mehr dargestellt!

17 4.2 Visibilitätsverfahren
Back-Face-Culling (cont.) Klassifikation der Rückseiten: es werden die Normalenvektoren Ni aller Flächen betrachtet bei einer Vorderseite enthält der Normalenvektor Ni eine Komponente in Blickrichtung, d. h. es gilt für das Skalarprodukt aus Vektor zum Augpunkt (viewing vector) v und Ni : Sichtbarkeitsbedingung! hier: Parallelprojektion N3 N4 Achtung: Die Orientierung des Blickrichtungsvektors ist wichtig => Vorzeichenwechsel ! Skalarprodukt gibt die Länge des projizierten Normalenvektors auf den Blickrichtungsvektor an. v N2 N5 N1 N6

18 4.2 Visibilitätsverfahren
Back-Face-Culling (cont.) Eigenschaften: Die Zahl der beim Rendering zu berücksichtigenden Polygone wird durch Entfernen der Rückseiten durchschnittlich etwa um die Hälfte reduziert. Der Aufwand zur Berechnung des Skalarprodukts ist minimal. Besteht die Szene nur aus einem einzelnen konvexen Polyeder, so löst Back-Face-Culling bereits das Visibilitäts- problem. Bei konkaven Polyedern oder Szenen, an denen mehrere Objekte beteiligt sind, kann es zu Selbst- und / oder Fremdverdeckung kommen. Hier werden aufwendigere Verfahren benötigt. Objektraumverfahren!

19 4.2 Visibilitätsverfahren
Bekannte Visibilitätsverfahren: erste Lösung des hidden-line-Problems: Roberts, Objektraumverfahren für konvexe Objekte area subdivision (divide-and-conquer): Warnock, Ausnutzung von Flächenkohärenz; Quadtrees! sample spans: Watkins, Ausnutzung von Rasterzeilenkohärenz depth list: Newell et al., Prioritätslistenalgorithmus im Objektraum Im Vergleich zum z-Buffer-Algorithmus haben diese Verfahren keine sonderlich große Popularität gewonnen. Teilweise blieben sie speziellen Verwendungszwecken vorbehalten.

20 4.2 Visibilitätsverfahren
z-Buffer-Algorithmus (Catmull, 1975) bestimmt Sichtbarkeit von Bildpunkten - arbeitet im Bildraum / im Display-Koordinatensystem - geeignet für die Bildausgabe auf Rastergeräten Arbeitsweise: Funktional gesehen führt der z-Buffer-Algorithmus innerhalb des Bildraums für jeden Bildpunkt eine Suche nach demjenigen Polygon durch, in dessen Innern der Punkt liegt und dessen zugehöriger z-Wert am größten ist (am weitesten vorne liegt). Zur Realisierung wird zusätzlicher Speicher verwendet (der sog. z-Buffer), in dem zu jedem Bildpunkt der größte z-Wert gespei- chert wird, der bisher aufgetreten ist.

21 4.2 Visibilitätsverfahren
z-Buffer-Algorithmus (cont.) Algorithmus: - initialisiere Bildspeicher (frame buffer) mit Hintergrundfarbe initialisiere z-Buffer mit minimalem z-Wert scan-conversion aller Polygone (beliebige Reihenfolge) - berechne z-Wert z(x,y) für jedes Pixel (x, y) im Polygon - falls z(x, y) größer als der Eintrag im z-Buffer bei (x, y) ist, trage Polygonattribute (Farbe) in Bildspeicher bei (x, y) ein und setze z-Buffer bei (x, y) auf z(x, y) Nach Abarbeitung des Algorithmus enthält der Bildspeicher das gewünschte Bild, der z-Buffer dessen Tiefenverteilung.

22 4.2 Visibilitätsverfahren
z-Buffer-Algorithmus (cont.) Beispiel: z-Werte codiert durch Zahlen: größere Zahl => näher zum Auge initialisiere Z-Buffer mit min. z-Werten addiere ein Polygon mit konstantem z-Wert m 5 + =

23 4.2 Visibilitätsverfahren
z-Buffer-Algorithmus (cont.) Beispiel: (cont.) addiere ein Polygon, welches das 1. Polygon schneidet 5 m 6 7 4 2 3 + =

24 4.2 Visibilitätsverfahren
z-Buffer-Algorithmus (cont.) Berechnung von z bei Polygonen: Zur Berechnung von z(x,y) : Ax+By+Cz+D=0 Also: z = (-D – Ax – By) / C = z(x, y) damit z(x+dx,y) = (-D – A(x+dx) – By) / C = z(x,y) – dx* A/C Nur eine Subtraktion notwendig da A/C konstant ist und dx=1!

25 4.2 Visibilitätsverfahren
z-Buffer-Algorithmus (cont.) Vorteile: + sehr einfache Implementierung des Algorithmus (Soft- und Hardware!) + unabhängig von der Repräsentation der Objekte! es muss nur möglich sein, zu jedem Punkt der Oberfläche einen z-Wert bestimmen zu können + keine Komplexitätsbeschränkung der Bildszene + keine besondere Reihenfolge oder Sortierung der Objekte notwendig (z. B. Tiefensortierung)

26 4.2 Visibilitätsverfahren
z-Buffer-Algorithmus (cont.) Nachteile: - Auflösung des z-Buffers bestimmt Diskretisierung der Bildtiefe, z. B. sind bei 20 Bit genau 220 Tiefenwerte unterscheidbar – problematisch sind weit entfernte Objekte mit kleinen Details Hier ist die sinnvolle Wahl der near- und far-clipping-plane (begrenzen view frustum!) entscheidend für die Qualität des Algorithmus! - Es wird ein großer Speicher benötigt – Abhilfe durch Zerlegung in Teilbilder oder Streifen möglich - Berücksichtigung von Transparenz und Antialiasing nur durch aufwendige Modifikationen möglich

27 4.2 Visibilitätsverfahren
Scan-Line z-Buffer-Algorithmus Variation des z-Buffer-Algorithmus zur Einsparung von Speicher - arbeitet auf einer Rasterzeile (z-Buffer der Pixelhöhe 1) Vergleich der Vorgehensweisen: z-Buffer: Initialisierung für alle Polygone für alle Rasterzeilen im Polygon Scan-Line z-Buffer: für alle Rasterzeilen Initialisierung für alle Polygone

28 4.2 Visibilitätsverfahren
Strahlverfolgungs-Algorithmus (Ray Tracing / Ray Casting) Ray Casting: Löst die Sichtbarkeit Ray Tracing: Ray Casting + Weiterverfolgung reflektierter bzw. gebrochener Strahlen (siehe auch „globale Beleuchtungsmodelle“) Bildraumalgorithmus Ray Tracing oft synonym für beides gebraucht.

29 4.2 Visibilitätsverfahren
Ray Casting Wirf (englisch: cast) Strahlen (englisch: ray) vom Augpunkt durch alle Pixel der Bildebene Berechne Schnittpunkte mit allen Objekten der Szene Das Objekt mit dem am nächesten gelegenen Schnittpunkt ist in diesem Pixel sichtbar Pixel Eye

30 4.2 Visibilitätsverfahren
Ray Casting (cont.) Beispiel: Schnittpunktberechnung mit einem Polygon 1. Berechne den Schnittpunkt mit der Ebene, in der das Polygon liegt 2. Teste, ob der Schnittpunkt innerhalb des Polygons liegt (Punktklassifizierung). Im Falle eines Dreiecks: Summe der Flächeninhalte der Teildreiecke p1 p2 p3 p2 p1 p3 gleich Flächeninhalt Dreieck Punkt innerhalb! größer Flächeninhalt Dreieck Punkt außerhalb!

31 4.2 Visibilitätsverfahren
Ray Casting (cont.) Nachteile: Für jeden Strahl muss jedes Objekt der Szene daraufhin getestet werden, ob der Strahl das Objekt schneidet Bei einer Auflösung 1024*1024 mit 100 Objekten in der Szene müssen 100 Millionen Schnittpunktberechnungen durchgeführt werden! Bis zu 95% der Rechenzeit werden für Schnittpunktberechnungen bei typischen Szenen verbraucht!

32 4.2 Visibilitätsverfahren
Ray Casting (cont.) Beschleunigungsansätze: Transformation der Strahlen auf die z-Achse; werden die Objekte mit der gleichen Transformation verschoben, so tritt ein Schnittpunkt immer bei x=y=0 auf. Bounding Volumes: komplexe Objekte mit einfacher zu testenden Objekten umschließen Haben diese Bounding Volumes keinen Schnittpunkt mit einem Strahl, so sind auch die darin enthaltenen Objekte nicht auf einen Schnittpunkt zu testen. Vermeidung von unnötigen Schnittpunktberechnungen: Hierarchien und Raumteilung Beispiele: Bounding Box, Bounding Sphere

33 4.2 Visibilitätsverfahren
Ray Casting (cont.) Hierarchien: baumartige Strukturen von Bounding Volumes - Blätter: Objekte der Szene - Innere Knoten: Bounding Volume seiner Kinder schneidet ein Strahl einen inneren Knoten nicht, so kann der Strahl auch nicht die Objekte seiner Kinder schneiden Problem: Die Generierung guter Hierarchien ist schwierig. Hierarchien beim modellieren: u.U. sehr flach und eher durch die Struktur des zu modellierenden Objektes induziert als durch die Verringerung von Schnittberechnungen

34 4.2 Visibilitätsverfahren
Ray Casting (cont.) Raumteilung: - Top-down Ansatz Zuerst wird die Bounding Box der Szene berechnet Anschließend wird diese in (gleich große) Teile unterteilt Jede Unterteilung enthält eine Liste mit allen Objekten, die in der Partition komplett oder auch nur teilweise enthalten sind Adaptiv: unterteile öfter wo auch mehr Objekte sind

35 4.2 Visibilitätsverfahren
Ray Casting (cont.) Raumteilung: (cont.) - Nur wenn ein Strahl eine Partition schneidet, müssen Schnittpunktberechnungen mit den assoziierten Objekten durchgeführt werden

36 4.2 Visibilitätsverfahren
Ray Casting (cont.) Raumteilung: (cont.) - Notwendig: Testen, ob der Schnittpunkt innerhalb der Partition liegt! Abhilfe: Alle Partitionen solange weiterverfolgen, bis ein Schnittpunkt gefunden wird, der innerhalb der Partition liegt.

37 4.2 Visibilitätsverfahren
Increasing Reality... Was können wir bisher? Was fehlt uns noch? Farben Beleuchtung Highlights Schatten Transparenz Reflexionen Refraktionen


Herunterladen ppt "4.1 Farbmodelle Farbe ist ein wesentlicher Bestandteil realistischer Computer- grafik. Dieses Unterkapitel beschreibt die quantitativen Aspekte von Farbe,"

Ähnliche Präsentationen


Google-Anzeigen