prev up inhalt next


7.5 Rendering

In die Berechnung des Farbwertes eines Pixels gehen die vorhandenen Lichtquellen, der Augenpunkt, die Oberflächennormale und die Materialeigenschaften ein. Die Materialeigenschaften sind gegeben durch In den diffusen Anteil geht die Intensität der Lichtquelle und der Kosinus des Winkels $\beta$ zwischen Oberflächennormale N und Vektor in Richtung Lichtquelle L ein:


In den spekularen Anteil geht die Intensität der Lichtquelle ein, der Kosinus des Winkel $\alpha$ zwischen dem reflektierten Strahl R und dem Vektor A in Richtung Augenpunkt und die Rauheit.


Texture Mapping
Zur realistischen Gestaltung von Oberflächen verwendet man ein zweidimensionales Musterfeld (texture map), aus dem für jedes Pixel die zugehörige Farbe ermittelt werden kann. Zugrunde gelegt sind zwei Abbildungen

Musterraum (u,v)  
$\downarrow$   Abbildung des Musters
Objektraum (x0,y0,z0)  
$\downarrow$   Projektion
Bildraum (x,y)  

Die Verknüpfung der zugehörigen inversen Transformationen liefert die zum Einfärben eines Pixels benötigte Information.


          Bildraum                                     Musterraum

Zum Einfärben im Bildraum wird die gewichtete Durchschnittsintensität aller überdeckten Pixel im Musterraum benutzt.

Bump Mapping
Um den Eindruck von unebenen Oberflächen zu erwecken, werden in einem Graubild Informationen zur Veränderung des Normalenvektors abgelegt.

Die Schattierungsalgorithmen unterscheiden sich bzgl. des Aufwandes zur Bestimmung der Helligkeitswerte im Innern eines 2D-Dreiecks.

Flat Shading
Alle Punkte des Dreiecks erhalten dieselbe Farbe. Berücksichtigt werden Hintergrundbeleuchtung und diffuse Reflexion.

Gouraud Shading
Es seien pro Dreieck an den Eckpunkten die Normalen in Weltkoordinaten bekannt (d.h. bei einer gekrümmten Fläche sind die drei Normalenvektoren verschieden).
Für jedes Pixel im Innern des Dreiecks wird nun durch doppelte Interpolation die Intensität approximiert:


Phong Shading
Es seien pro Dreieck an den Eckpunkten die Normalen in Weltkoordinaten bekannt. Für jedes Pixel im Innern des Dreiecks wir nun durch doppelte Interpolation seine individuelle Normale approximiert und dann der Farbwert berechnet.

Sichtbarkeit
Nicht sichtbare Flächen oder Flächenanteile werden wie folgt entfernt:
Beim Back Face Culling wird aufgrund des Normalenvektors einer Fläche entschieden, ob sie vom Betrachter abgewandt ist und somit vom Rendern ausgeschlossen werden kann.
Beim z -Buffer-Algorithmus wird zusätzlich zum Bildwiederholspeicher bild ein 2-dimensionales Feld tiefe gehalten, welches für jedes Pixel den z -Wert des in diesem Punkt dem Betrachter am nächsten liegenden Objekts enthält.

Fuer jede Flaeche tue:
Fuer jedes Pixel (x, y) auf dieser Flaeche tue:
   berechne Farbe x und Tiefe z
   falls z < tiefe[x, y] dann
      bild  [x, y] := c
      tiefe [x, y] := z
Beim Spanning-Scan-line-Algorithmus durchläuft eine Scan-Line von oben nach unten das Bild und stützt sich auf eine nach y -Koordinaten sortierten Liste von Polygonen. Alle Kanten der aktiven Polygone befinden sich in einer nach x -Koordinaten sortierten Liste. Jeweils am Schnittpunkt der Scan-Line mit einer Polygonkante wird über die Sichtbarkeit der nächsten Polygonfläche entschieden.


Schatten
Zur Berechnung von Schatten eignen sich alle Hidden-Surface-Algorithmen, da die verdeckten Flächen einer Szene genau den beschatteten Flächen entsprechen, wenn die Position der Lichtquelle und des Betrachters zusammenfallen.
Zunächst wird daher als Phase 1 aus der Sicht der Lichtquelle die Szene in einen Schattentiefenpuffer abgebildet. Phase 2 berechnet dann für den jeweiligen Betrachtungsstandpunkt die Szene mit einem modifizierten Tiefenpuffer-Algorithmus: Ergibt die Überprüfung des z -Wertes mit dem Eintrag tiefe[x, y] im Tiefenpuffer, daß dieses Pixel sichtbar ist, so wird der Punkt P(x,y,z) in den Koordinatenraum von Phase 1 transformiert. Ist die z -Koordinate z' des transformierten Punktes P kleiner oder gleich dem Eintrag [x',y'] im Schattentiefenpuffer, dann liegt der Punkt P nicht im Schatten, andernfalls liegt er im Schatten, und seine Intensität muß entsprechend reduziert werden.


Würfel, gerendert mit Texturemapping, Bumpmapping und Spotlicht



Kugel, gerendert mit spiegelnder Oberfläche und Environment-Textur


prev up inhalt next