6.1 Farbmodelle Farbe ist ein wesentlicher Bestandteil realistischer Computergrafik. 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 Computergrafik für den Maschinenbau - WS 2006/7 6-1
6.1 Farbmodelle Hierarchien bekannter Farbmengen A: Menge aller vom Menschen wahrnehmbaren Farben Ebener Schnitt durch den dreidimensionalen Farbraum. Jeder Punkt entspricht einer Farbe. B: Menge aller von einem Ausgabegerä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 16777216 Farben i. a. Untermenge von A, enthält aber auch Elemente von B\A Computergrafik für den Maschinenbau - WS 2006/7 6-2
6.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. Computergrafik für den Maschinenbau - WS 2006/7 6-3
6.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 Gewichtsfaktoren, 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 CMY: subtraktives Farbmodell für die Drucktechnik Computergrafik für den Maschinenbau - WS 2006/7 6-4
6.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 0 r, g, b 1. 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. 0 r, g, b 255. - 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 Computergrafik für den Maschinenbau - WS 2006/7 6-5
6.1 Farbmodelle RGB-Farbmodell (cont.) B R G RGB-Farbwürfel Computergrafik für den Maschinenbau - WS 2006/7 6-6
6.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 Computergrafik für den Maschinenbau - WS 2006/7 6-7
6.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: Cyan 0 H < 360 Saturation: Sättigung: 0 S 1 (Verkleinerung addiert Weiß) Value: Helligkeit: 0 V 1 (Verkleinerung addiert Schwarz) Computergrafik für den Maschinenbau - WS 2006/7 6-8
6.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: RGB (1, 0, 0) Farbe Rot HSV (0, 1, 1) (1, 1, 0) Gelb (60, 1, 1) - Bemerkung: Im HSV-Modell besitzen Komplementärfarben eine Winkeldifferenz von 180 im H-Wert (0, 1, 0) (0, 1, 1) (0, 0, 1) (1, 0, 1) Grün Cyan Blau Magenta (120, 1, 1) (180, 1, 1) (240, 1, 1) (300, 1, 1) Computergrafik für den Maschinenbau - WS 2006/7 6-9
6.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.) Computergrafik für den Maschinenbau - WS 2006/7 6-10
6.2 Beleuchtung und Schattierung Die Grundbestandteile des Renderprozesses Atmosphärische Streuung Emission Reflexion/ Transmission/ Emission Oberfläche Computergrafik für den Maschinenbau - WS 2006/7 6-11
6.2 Beleuchtung und Schattierung Beleuchtung / Lichtquellen - Punktlicht: Das Licht strahlt von einem Punkt in der Szene gleichmäßig in alle Richtungen. - Richtungslicht: Das Licht strahlt (von einem unendlich weit entfernten Punkt aus) in eine bestimmte Richtung. - Spotlight: Das Licht strahlt in einem Kegel, ausgehend von der Kegelspitze. - Flächenlichtquellen: Weiche Ausleuchtung; technisch realisiert durch Ebenen, Kegel oder Zylinder mit vielen Lichtquellen. Computergrafik für den Maschinenbau - WS 2006/7 6-12
6.2 Beleuchtung und Schattierung Klasse Light in Java3D - Abstrakte Klasse - Spezielles Blatt - Influencing Bounds beschreiben ausgeleuchtete Region - Unterklassen: - AmbientLight (Umgebungslicht) L - PointLight (Punktlichtquelle mit entfernungsabhängiger Abschwächung) - DirectionalLight (gerichtetes Licht von unendlich entfernter Lichtquelle) BG Subgraph VirtualUniverse Locale BG Computergrafik für den Maschinenbau - WS 2006/7 6-13
6.2 Beleuchtung und Schattierung - Beispielprogramm import com.sun.j3d.utils.geometry.*; import com.sun.j3d.utils.universe.*; import javax.media.j3d.*; import javax.vecmath.*; public class Ball { public Ball() { SimpleUniverse universe = new SimpleUniverse(); // Create the universe BranchGroup group = new BranchGroup(); // Create a structure to contain objects Sphere sphere = new Sphere(0.5f); // Create a ball and add it to the group of objects group.addchild(sphere); // Create a red light that shines for 100m from the origin Color3f light1color = new Color3f(1.0f, 0.1f, 0.1f); BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); Vector3f light1direction = new Vector3f(4.0f, -7.0f, -12.0f); DirectionalLight light1 = new DirectionalLight(light1Color, light1direction); light1.setinfluencingbounds(bounds); group.addchild(light1); universe.getviewingplatform().setnominalviewingtransform(); // look towards the ball } } universe.addbranchgraph(group); // add the group of objects to the Universe public static void main(string[] args) { new Ball(); } Computergrafik für den Maschinenbau - WS 2006/7 6-14
6.2 Beleuchtung und Schattierung Struktur des Szenengraphen des Programms Ball VirtualUniverse - SimpleUniverse mit ViewingPlatform mit View- Transformation und Viewer - Kugel als geometrisches Primitiv Viewer BG T L Locale BG P - Gerichtete Lichtquelle VP Computergrafik für den Maschinenbau - WS 2006/7 6-15
6.2 Beleuchtung und Schattierung Die Bestimmung der Intensität (Farbe) derjenigen Pixel, auf die ein Objekt (z. B. in Form eines Polygons) projiziert wird, wird mittels sogenannter Beleuchtungs-, Reflexions- und Schattierungsalgorithmen bzw. -modellen durchgeführt. Vorsicht vor Begriffswirrwarr in der Literatur!: illumination model, lighting model, reflection model, shading model - mit dem Zusatz local ~ Berechnung der Intensität (Farbe) eines Punktes in Abhängigkeit von direktem Lichteinfall einer Lichtquelle z. B. the Phong local reflection model, physikalisch basierte Modelle nur direkte Beleuchtung! Computergrafik für den Maschinenbau - WS 2006/7 6-16
6.2 Beleuchtung und Schattierung illumination model (cont.) - mit dem Zusatz local ~ (cont.) direkt direkt indirekt A B Computergrafik für den Maschinenbau - WS 2006/7 6-17
6.2 Beleuchtung und Schattierung illumination model (cont.) mit dem Zusatz global ~ Berechnung der Intensität (Farbe) eines Punktes in Abhängigkeit von direktem Lichteinfall einer Lichtquelle und indirekt einfallendem Licht, d. h. nach Reflexion(en) an oder Transmission(en) durch die eigene oder andere Oberflächen z. B. Ray-Tracing-Verfahren, Radiosity-Verfahren Globale Beleuchtungsverfahren benutzen oft lokale Reflexionsmodelle oder erweitern diese geeignet. direkte und indirekte Beleuchtung! Computergrafik für den Maschinenbau - WS 2006/7 6-18
6.2 Beleuchtung und Schattierung shading model Grundstruktur in die ein Beleuchtungsmodell eingebettet ist Ein Schattierungsmodell bestimmt, wann ein Beleuchtungsmodell angewendet wird, z. B. Auswertung eines Beleuchtungsmodells für jedes Pixel z. B. oft bei Ray-Tracing-Verfahren angewendet kontra Auswertung eines Beleuchtungsmodells für ausgewählte Pixel, Farben von Zwischenpixel werden per Interpolation bestimmt interpolative shading techniques, z. B. flat shading, Gouraud shading, Phong shading Computergrafik für den Maschinenbau - WS 2006/7 6-19
6.3 Lokale Beleuchtungsmodelle Geometriebetrachtung: theta phi P P Punkt auf Objektoberfläche N Flächennormalenvektor in P, normiert L Vektor von P zu einer Punktlichtquelle, normiert V Vektor von P zum Augpunkt (Viewing), normiert φ i, θ i (lokale) sphärische Koordinaten (von L und V) Computergrafik für den Maschinenbau - WS 2006/7 6-20
6.3 Lokale Beleuchtungsmodelle Wiederholung: Reflexionsgesetz, (perfekte) spiegelnde Reflexion R Vektor des reflektierten Strahls, normiert N L R θ θ R 2 R 1 Es gilt: L und R liegen in einer Ebene und θ = θ in = θ ref R = = = R R 2 2 + + R R 1 2 L = 2 ( L N) N L R 2 2 L Computergrafik für den Maschinenbau - WS 2006/7 6-21
6.3 Lokale Beleuchtungsmodelle Wir betrachten zunächst das am häufigsten verwendete lokale Beleuchtungsmodell von Phong (Bui-Thong), 1975 Achtung: Es handelt sich um ein empirisches Modell ohne wirkliche physikalische Basis, aber guten praktischen Resultaten! Das Modell simuliert folgende physikalische Reflexionsphänomene: (a) perfekte/vollkommene spiegelnde Reflexion Ein Lichtstrahl wird ohne sich aufzustreuen, perfekt nach dem Reflexionsgesetz reflektiert. Oberfläche: idealer Spiegel, existiert in der Realität nicht Computergrafik für den Maschinenbau - WS 2006/7 6-22
6.3 Lokale Beleuchtungsmodelle Simulierte physikalische Reflexionsphänomene: (cont.) (b) unvollkommene spiegelnde Reflexion Der Lichtstrahl wird bei der Reflexion aufgespalten, es entsteht ein Reflexionskegel um die ausgezeichnete Reflexionsrichtung. Oberfläche: unvollkommener Spiegel, rauhe Oberfläche, ein Oberflächenelement ist mikroskopisch aus vielen kleinen perfekten Spiegeln mit leicht unterschiedlichen Ausrichtungen zusammengesetzt Computergrafik für den Maschinenbau - WS 2006/7 6-23
6.3 Lokale Beleuchtungsmodelle Simulierte physikalische Reflexionsphänomene: (cont.) (c) perfekte/vollkommene diffuse Reflexion Der Lichtstrahl wird bei der Reflexion perfekt gestreut, d. h. mit gleichmäßiger Intensität in alle Richtungen Oberfläche: ideale matte Oberfläche, existiert in der Realität nicht, annäherungsweise: feine Lage Puder Das Phong Beleuchtungsmodell sieht vor, dass das reflektierte Licht eines Oberflächenpunktes aus drei Anteilen besteht, die linear kombiniert werden: reflected light = diffuse component + specular component + ambient light Streulicht + Glanzlicht + Umgebungslicht Computergrafik für den Maschinenbau - WS 2006/7 6-24
6.3 Lokale Beleuchtungsmodelle Computergrafik für den Maschinenbau - WS 2006/7 6-25
6.3 Lokale Beleuchtungsmodelle ambient light: eine Hilfskonstruktion! Der ambiente Teil wird oft konstant gewählt und simuliert die globale bzw. die indirekte Beleuchtung! Dies ist notwendig, da einige Objekte die Lichtquelle(n) nicht sehen und somit in dem Modell schwarz dargestellt würden. In der Realität werden solche Objekte aber indirekt beleuchtet. Hier wird durch das simple Addieren einer Konstante eine sehr komplexe globale Beleuchtungsberechnung ersetzt. Welchen Typ von Oberflächen beschreibt nun das Modell? Die lineare Kombination von diffuser und spiegelnder Reflexion entspricht zum Beispiel der Physik polierter Oberflächen, z. B. poliertem Holz (transparente Schicht: spiegelnd, Oberfläche: diffus) Computergrafik für den Maschinenbau - WS 2006/7 6-26
6.3 Lokale Beleuchtungsmodelle Polierte Oberflächen: Computergrafik für den Maschinenbau - WS 2006/7 6-27
6.3 Lokale Beleuchtungsmodelle Das mathematische Modell: (ohne Farbe) I = kd Id + ks Is + ka Ia Die Physik der Oberfläche wird über die Verhältnisse der einzelnen Komponenten modelliert. Für diese Konstanten gilt: kd + ks + ka = 1 - Diffuse Reflexion, der Term k I : I = I cosθ d i mit I i Intensität des einfallenden Lichts θ Winkel zwischen Punktnormale N und Lichtvektor L d d Computergrafik für den Maschinenbau - WS 2006/7 6-28
6.3 Lokale Beleuchtungsmodelle - Diffuse Reflexion: (cont.) also I d = I i ( L N) Die diffuse Komponente des Phong-Modells modelliert das Kosinusgesetz von Lambert: Bei ideal diffusen (matten) Oberflächen ist die Intensität des (in alle Richtungen gleich) reflektierten Lichtes eine Funktion des Kosinus zwischen Oberflächennormale und Lichtvektor. Computergrafik für den Maschinenbau - WS 2006/7 6-29
6.3 Lokale Beleuchtungsmodelle - Spiegelnde Reflexion, der Term k I : Physikalisch gesehen besteht die spiegelnde Reflexion aus einem Abbild der Lichtquelle, das über einen Teil der Oberfläche geschmiert ist - üblicherweise als Highlight bezeichnet. Ein Highlight kann vom Betrachter nur gesehen werden, wenn seine Betrachtungsrichtung (V) nahe der Reflexionsrichtung (R) liegt. Dies wird simuliert durch: I s n = I cos ( Ω) i mit Ω Winkel zwischen V und R n simuliert Perfektionsgrad der Oberfläche (n heißt perfekter Spiegel, d. h. reflektiertes Licht nur in Richtung R) s s Computergrafik für den Maschinenbau - WS 2006/7 6-30
6.3 Lokale Beleuchtungsmodelle - Spiegelnde Reflexion: (cont.) n also I = I cos ( Ω) s i n=1 1 0,8 0,6 0,4 0,2 0 n=5 1 0,8 0,6 0,4 0,2 0 n=10 n=50 1 0,8 0,6 0,4 0,2 0 Computergrafik für den Maschinenbau - WS 2006/7 6-31
6.3 Lokale Beleuchtungsmodelle - Spiegelnde Reflexion: (cont.) also I = I ( R V ) s i n Bemerkung: Für verschiedene L entsteht (bis auf die Ausrichtung um R) immer der gleiche Reflexions- Intensitätskegel. Dies entspricht nicht der realen Abhängigkeit von Spiegelungen von der Ausrichtung des Lichtvektors! Gravierender Mangel des Models! Computergrafik für den Maschinenbau - WS 2006/7 6-32
Computergrafik für den Maschinenbau - WS 2006/7 6-33 6.3 Lokale Beleuchtungsmodelle Das Gesamtmodell: im 2D-Schnitt: ambient diffuse specular a a n s d i a a s s d d I k V R k N L k I I k I k I k I + + = + + = ) ) ( ) ( (
6.3 Lokale Beleuchtungsmodelle Beispiel: zunehmendes ks ka konstant zunehmendes n Computergrafik für den Maschinenbau - WS 2006/7 6-34
6.3 Lokale Beleuchtungsmodelle Bemerkung: Aus Geschwindigkeitsgründen stört im bisherigen mathematischen Modell die Berechnung des Reflexionsvektors R. Man definiert einen neuen Vektor H (halfway), mit der Richtung H=(L+V)/2, und betrachtet statt R V jetzt N H, das sich auf die gleiche Art und Weise wie R V verhält (bis auf einen Faktor 1/2, der aber da wir sowieso nur mit einem empirischen Modell arbeiten - durch ein größeres n ausgeglichen werden kann). Damit ergibt sich: I n = Ii ( kd ( L N) + ks ( N H ) ) + k a I a Computergrafik für den Maschinenbau - WS 2006/7 6-35
6.3 Lokale Beleuchtungsmodelle Das mathematische Modell: (mit Farbe) Für farbige Objekte (Lichtquellen) wird das Modell getrennt auf die Farbkomponenten I r, I g, I b angewendet: I I I r g b = I = I = I ir ig ib ( k ( k ( k dr dg db ( L N) + k ( L N) + k sr ( L N) + k sg sb ( N H ) n ( N H ) ( N H ) n ) + k n ) + k ar ) + k ag ab I I ar I ag ab Computergrafik für den Maschinenbau - WS 2006/7 6-36
6.3 Lokale Beleuchtungsmodelle Bemerkungen: - Das Beleuchtungsmodell nach Phong ist kein Versuch, optische Gesetze physikalisch exakt zu modellieren. Das Modell ist empirisch! - Die lokale Beleuchtung ist schnell zu berechnen, die Bilder sind gut. - Außer der Normaleninformation werden keine weiteren Geometrie-Informationen verwendet! - Diffuser und spiegelnder Anteil werden lokal berechnet. - Die Farbe des spiegelnden Anteils wird durch die Farbe der Lichtquelle bestimmt (bzw. über die der Lichtquelle zugeordneten Konstanten k sr, k sg, k sb ). Computergrafik für den Maschinenbau - WS 2006/7 6-37
6.3 Lokale Beleuchtungsmodelle Bemerkungen: (cont.) - Gravierende Mängel des Modells: Die Intensität der spiegelnden Reflexion hängt nicht wirklich von der Ausrichtung des Lichtvektors ab! Objektoberflächen wirken plastikhaft, zum Beispiel lässt sich kein blankes Metall modellieren. physikalisch basierte lokale Beleuchtungsmodelle, die versuchen die BRDF korrekt zu simulieren, z. B. Cook-Torrance oder Blinn (hauptsächlich für Metalle!) oder gänzlich andere Techniken, wie z. B. Mapping-Verfahren Computergrafik für den Maschinenbau - WS 2006/7 6-38
6.3 Lokale Beleuchtungsmodelle Nachteile rein lokaler Beleuchtungsmodelle: - spiegeln Idealfall eines einzelnen von einer einzigen Punktlichtquelle beleuchteten Objektes in der Szene wider - betrachten ausschließlich direkte Beleuchtung (bis auf Hilfskonstruktionen) - Interaktion mit anderen Objekten nicht modelliert (d. h. keine indirekte Beleuchtung, kein Schattenwurf!) globale Beleuchtungsverfahren Computergrafik für den Maschinenbau - WS 2006/7 6-39