architektur und programmierung von grafik- und ... · hardware implementierung geht h au g mit...

55
Architektur und Programmierung von Grafik- und Koprozessoren Rendering Algorithmen Stefan Zellmann Lehrstuhl f¨ ur Informatik, Universit¨ at zu K¨ oln SS2018

Upload: ngotram

Post on 07-Aug-2019

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Architektur und Programmierung von Grafik- undKoprozessoren

Rendering Algorithmen

Stefan Zellmann

Lehrstuhl fur Informatik, Universitat zu Koln

SS2018

Page 2: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Aliasing und Sampling Theorie

Page 3: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Aliasing und Sampling Theorie1

▶ Aliasing durch verschiedenste Quellen spielt in Computergrafikgroße Rolle.

▶ Anti-Aliasing integraler Teil von Hardware (GPUs).▶ Multi-Sample Anti-Aliasing.▶ Dedizierte Textur-Sampling Einheiten.▶ Spezialisierte Hardware fur Mip-Mapping, anisotropisches

Filtering etc.

▶ Daher kurze Einfuhrung in Sampling Theorie, um zuverstehen, auf welchen Ebenen Anti-Aliasing notig.

1vgl. z. B. Pharr, Jakob, Humphreys: Physically Based Rendering, 3rd ed.(2017)

Page 4: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Aliasing Quellen

Page 5: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Aliasing Quellen

▶ Aliasing in der Bildebene.

▶ Aliasing im Texturraum.

▶ Aliasing bei spiegelnden Oberflachen.

▶ Zeitliches Aliasing.

▶ Aliasing durch zu niedrige Farbauflosung.

▶ ...

Page 6: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Dirac Delta Verteilung und Shah Funktion

Dirac Delta Funktion:∫δ(x)dx =

{1, if x = 0

0 sonst(4)

Fur f (x) stetig differenzierbar folgt∫f (x)δ(x)dx = f (0).

Shah Funktion (a.k.a. “Impulse Train”): unendliche Summeaquidistanter Delta Funktionen:

X∆(x) = ∆∞∑

i=−∞δ(x − i∆), (5)

wobei ∆ die Periode der Shah Funktion.

Page 7: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Sampling und Rekonstruktion

Durch Multiplikation der stetigen, “zu samplenden” Funktion f (x)mit der Shah Funktion ergibt sich eine unendliche Sequenz vonSample Punkten:

X∆(x)f (x) = ∆∞∑

i=−∞δ(x − i∆)f (i∆). (6)

Page 8: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Sampling und Rekonstruktion

Erhalte f (x) durch Faltung mit Rekonstruktionsfilterfunktion r(x):

f (x) = (X∆(x)f (x)) ∗ r(x), (7)

wobei die Faltung zweier Funktionen f (x) und g(x) definiert ist als

f (x) ∗ g(x) =∫ ∞

−∞f (τ)g(x − τ)dτ. (8)

Bei der Faltung mit dem Rekonstruktionsfilter ergibt sich diegewichtete Summe:

f (x) = ∆∞∑

i=−∞f (i∆)r(x − i∆). (9)

Page 9: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Sampling und Rekonstruktion

Rekonstruktion mit Box Filter

r(x) =

{1, if |x | < 1

2

0 sonst. (10)

Page 10: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Sampling und Rekonstruktion

Stuckweise lineare Rekonstruktion (Tent Filter)

r(x) = max(0, 1− |x |) (11)

Page 11: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Rekonstruktion

Exakt rekonstruierbare Signalfunktionen

Es gibt eine Klasse von Funktionen (bandlimitierte Funktionen),die, wenn man eine entsprechende Sampling Rate wahlt, exakt ausder Sequenz von Sample Punkten rekonstruiert werden kann.

Page 12: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Fourier Transformation

f (x) hat Reprasentation im Ortsraum sowie im Frequenzraum.

Fourier Transformation: Ortsraum ⇒ Frequenzraum:

F (ω) =

∫ ∞

−∞f (x)e−i2πωxdx , (12)

inverse Fourier Transformation: Frequenzraum ⇒ Ortsraum:

f (x) =

∫ ∞

−∞F (ω)e i2πωxdω. (13)

(Dabei sind e ix = cos(x) + isin(x) und i =√−1.)

Idee: Signale lassen sich im Limit als gewichtete Summe vonSinusoiden reprasentieren.

Page 13: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Fourier Transformation

Orts- und Frequenzreprasentation wichtiger Funktionen

Ortsraum FrequenzraumKonstante: Dirac Delta:f (x) = 1 F (ω) = δ(ω)

Box: Sinc:

f (x) = 1

{if |x | < 1

2 ,

0 sonstF (ω) = sin(πω)

πω

Shah: Shah:f (x) = ∆

∑∞i=−∞ δ(x −∆i) F (ω) = 1

∑∞i=−∞ δ(ω − 1

∆)

Tabelle: vgl. Pharr, Jakob, Humphreys: Physically Based Rendering, 3rded. (2017), p. 405.

Page 14: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Fourier Transformation

Wichtige Eigenschaft der Fourier Transformation:Faltung in Ortsraum entspricht Multiplikation in Frequenzraum,und umgekehrt:

f (x)g(x) = F (ω) ∗ G (ω), (14)

sowieF (x)G (x) = f (ω) ∗ g(ω). (15)

Das Produkt von weiter oben: X∆(x)f (x) entspricht also einerFaltung mit Periode 1

∆ im Frequenzraum:

X∆(x)f (x) = X 1∆(ω) ∗ F (ω). (16)

Page 15: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Bandlimitierte Signale

Faltung mit Shah Funktion in Frequenzraum: Signal wird unendlichoft repliziert, mit Periode der Shah Funktion.

* =

Page 16: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Bandlimitierte Signale

Multiplikation mit Box Filter in Frequenzraum, um alle außer einerKopie zu verwerfen.

=

Box mit Breite proportional zur Sampling Rate ∆:

r(x) =

{12∆ |x | < ∆

0 sonst. (17)

Page 17: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Bandlimitierte Signale

Im Frequenzraum entspricht dieser Vorgang wegen o. g.Eigenschaften der Multiplikation mit der Shah Funktion X∆(x)sowie einer Faltung mit dem sinc Rekonstruktionsfilter.

y

x-20 -15 -10 -5 5 10 15 20

-0,2

0,2

0,4

0,6

0,8

1

Abbildung: sinc Filter im Interval [−20..20], vgl. Yvonne Percan,Untersuchung und Klassifikation des Fehlerverhaltens bei DirektemVolume Rendering, Diplomarbeit (2014)

Page 18: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Bandlimitierte Signale

Problem bei dieser Betrachtung:

▶ sinc Filter hat unendliche Ausdehnung.

▶ Signal muss bandlimitiert sein.

Page 19: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Bandlimitierte Signale

Nicht-bandlimitierte Signale: Replikationen “uberlappen”, es wirdein Teil einer anderen Frequenz mit rekonstruiert.

=

Frequenz gibt sich als andere Frequenz aus ⇒ Aliasing.

Page 20: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Anti-Aliasing im Bildraum

▶ Nicht-bandlimitierte Signale ⇒ niemals exakt rekonstruierbar.Aliasing, egal wie hoch die Sampling Rate.

▶ Sehr viele Samples: erhohte Rechenzeit, Floating-PointRundungsungenauigkeiten etc.

▶ Platziere so viele Samples, sodass optimal bzgl. Konvergenz.

Page 21: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Anti-Aliasing im Bildraum

Menschliches Auge weniger empfindlich ggu Rauschen. WeicheSchatten: links: 16 uniforme Samples, rechts: 16 zufallige Samples.

Tabelle: Cornell Box (https://www.graphics.cornell.edu/online/box/),Rendering: Stefan Zellmann

Page 22: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Anti-Aliasing im Bildraum

▶ Punkt-Samples an diskreten Stellen auf der Bildebene.▶ Pixel haben keine Flache!

▶ Idee: Mehrere Sample “um Pixel herum”, gewichte jedesSample mit Rekonstruktionsfilter (z. B. Tent oder Funktionhoherer Ordung wie B-Spline).

Page 23: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Anti-Aliasing im Bildraum

Jittered Sampling

Sample um Pixelposition herum, verschiebe um zufallig uniformverteiltes δ ∈ [0..12).

Page 24: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Anti-Aliasing im Bildraum

Jittered Sampling

Problem: Cluster-Bildung und unterreprasentierte Bildregionen.

Page 25: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Anti-Aliasing im Bildraum

Stratified Sampling

Eine Losungsstrategie: teile Pixel in Strata ein, sample innerhalbder Strata. Bessere Verteilung, jedoch andere Probleme (z. B. fixeDimensionalitat der Strata).

Page 26: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Anti-Aliasing im Bildraum

Low-Discrepancy Sampling

Informell: finde Sampling Positionen, die Uberlapp der roten Boxenminimieren.

Page 27: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Anti-Aliasing im Bildraum

Diskrepanz

Sei B Familie von Polyedern bi in [0, 1)n (Linien, Rechtecke, Boxenmit Ursprung bei 0 und Kantenlange < 1). Sei P eine Menge vonN Sample Punkten innerhalb des Polyeders [0, 1)n.

Die Diskrepanz von P bzgl. B ist dann:

D(P ,B) = supb∈B

∣∣∣∣Nb

N− V (b)

∣∣∣∣, (18)

wobei Nb die Anzahl Sample Punkte in b und V (b) das Volumenvon b.

Page 28: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Anti-Aliasing im Bildraum

Diskrepanz

0.3 0.6

0.3

0.6

Abbildung: vgl. Pharr, Jakob, Humphreys: Physically Based Rendering,3rd ed. (2017)

Punkte in [0..1)2. Die Diskrepanz in der kleinen Box (b1 = [0, 0.3))betragt D = 0.25− 0.09 = 0.16, die Diskrepanz in der großerenBox (b2 = [0, 0.6)) betragt D = 0.5− 0.36 = 0.14. Diskrepanzbzgl. P in B = {b1, b2, ..} ist Maximum uber alle D.

Page 29: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Anti-Aliasing im Bildraum

Bemerkung zur Diskrepanz

Offensichtlich haben uniform verteilte Sample Punkt Sequenzen dieniedrigste Diskrepanz. Wir suchen Sequenzen mit niedrigerDiskrepanz, die keine uniformen Sampling Artefakte mit sichbringen.

Page 30: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Anti-Aliasing im Bildraum

Low-Discrepancy Sequenzen

▶ “Quasi-Zufallszahlen”, entsprechen regelmaßigemBildungsgesetz.

▶ Weiterfuhrend. Beispiele sind:▶ Halton Sequenz.▶ Sobol Sequenz.

Page 31: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Multisample Anti-Aliasing auf GPUs

Abbildung: vereinfacht gemaß: EQAA Modes for AMD 6900 SeriesGraphics Cards, AMD Developer Relations (2011)

Page 32: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Multisample Anti-Aliasing auf GPUs

Tabelle: 1x, 2x, 4x und 8x Multisample Antialiasing (MSAA)

Page 33: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Textur Sampling auf GPUs

Page 34: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Textur Sampling auf GPUs

Mip-Mapping

Page 35: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Textur Sampling auf GPUs

Texture DerivativesGPU Raster Engines wahlen Mip-Map Level aufgrund derz-Distanz benachbarter Rasterpunkte. 1st-order Derivatives ⇒Raster Engines verarbeiten 2× 2 Bildschirmregionen (“Quads”).

z1

z2

dfdy = z2-z1

z1

z2

dfdy = z2-z1

Page 36: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Drei Rendering Algorithmen

Page 37: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Auswahlkriterien

Warum genau diese drei Algorithmen?

Es gibt eine Vielzahl von Rendering Algorithmen. Wir sind andenjenigen Algorithmen interessiert, die derzeit produktiv zumEinsatz kommen. Wir konzentrieren uns auf Algorithmen, die heuteam popularsten z. B. in Film- oder Spieleindustrie sind, oder beimEchtzeit Rendering fur Wissenschaftliche Visualisierung zumEinsatz kommen.

Wir behandeln drei Algorithmen, die entweder in Grafik Hardwarefest implementiert sind, oder die sich einfach mit Hilfe vonprogrammierbarer Grafikhardware implementieren lassen.

Page 38: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Ubersicht Rendering Algorithmen

Rasterisierung / z-Buffer Algorithmus

GPU Fixed-Function Pipeline, OpenGL und DirectX nutzen diesenAlgorithmus.

g-Buffer Algorithmen (“Deferred Shading/Lighting”)

Einfaches z-Buffering ist ineffizient, wenn viele Lichtquellenvorhanden. Erweiterung des z-Buffer Algorithmus, fuhreBeleuchtungsberechnung aus, nachdem Tiefentest entschieden ist(→ viele Lichter).

Strahlverfolgung

Physikalisch plausibler als Rasterisierung - es wird einLichtpartikelmodell angenommen, bei dem sich Photonen entlanggerader Linien bewegen und dabei Phanomenen wie Absorptionoder Streuung ausgesetzt sind.

Page 39: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Anmerkung zur Performanz von Rendering Algorithmen

Es gibt keine “per Konstruktion” langsamen Algorithmen,bestimmte Phanomene aber besser (oder schneller) mitbestimmten Algorithmen losbar, z. B.:

▶ wenige Punktlichtquellen, lokale Beleuchtung: eherRasterisierung.

▶ globale Beleuchtung, Scattering Phanomene,Flachenlichtquellen: eher Ray Tracing et al.

▶ viele Lichtquellen, Einsatz von Post Processing Verfahren(z. B. Bloom, Lens Flare, Screen Space Ambient Occlusion):g-Buffer.

Page 40: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Hardware Implementierung

Dedizierte Hardware Implementierung kann Algorithmenbeschleunigen:

▶ Umgehung von General Purpose Befehlssatz.

▶ Speicherabstraktion ausgelegt auf Speicherzugriffsmuster,z. B. raumfullende Kurven fur 2D Texturen.

▶ Hardware Implementierung geht haufig mit dediziertemBefehlssatz fur den Algorithmus einher (z. B. Register fur4-Komponenten Vektor Operationen) (denn nichtprogrammierbare Architekturen auf Dauer langweilig).

Popularitat des Rasterisierungsalgorithmus ruhrt u. a. daher, dassGPUs speziell diesen Algorithmus in Hardware implementieren.

Page 41: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Weiteres Vorgehen

▶ Zunachst Erarbeiten einer formalen Beschreibung der dreiFamilien von Rendering Algorithmen.

▶ Darauf aufbauend Komplexitatsanalyse:▶ bzgl. #Polygone, #Pixel (Auflosung), sowie #Lichtquellen.▶ unter Annahme einer Turing Maschine (seriell, wahlfreier

Zugriff auf Speicher).▶ spater unter Annahme paralleler Architektur (PRAM).

Page 42: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Der Rasterisierungsalgorithmus

Page 43: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Rasterisierung

Im Abschnitt Grundlegendes dieses Vorlesungsteils haben wir diemeisten Einzelkomponenten des Rasterisierungsalgorithmus schonkennengelernt. Wir wollen nun die Komponenten zusammenfugenund den Algorithmus formal analysieren.

Page 44: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Rasterisierung - Eingabedaten (1)

Liste von Vertices Vi := {pi, ni ,TCi ,Ci , · · · }Position pi ∈ R3

Weitere (ggf. benutzerdefinierte) Vertex Attribute, z. B.:Normalenvektor ni ∈ R3, wobei ∥ni∥ = 1Texturkoordinate TCi ∈ R2

Vertexfarben Ci

Annahme:Jeweils n aufeinanderfolgende Vertices Vi , i mod n = [1, .., n − 1, 0]sind koplanar bzgl. pi (wir nehmen n = 3 an, also Dreiecke).

Page 45: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Rasterisierung - Eingabedaten (2)

Liste von Materialeigenschaften und Texturen

Mk

Ausfuhrliche Behandlung in Vorlesungseinheit “Anwendungen:Photorealistische Computergrafik”.

Liste von Lichtquellen Lj := {Pj , Ij}Position Pj ∈ R3

Lichtintensitat Ij(W /sr)

Page 46: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Rasterisierung - Eingabedaten (3)

Beleuchtungsfunktion (“Shader”)

f : {ωi , ωo ,Mk , Lj , ...} → C ,

C ∈ Rn+,

ωi , ωo ∈ R3

(19)

Ausfuhrliche Behandlung in Vorlesungseinheit “Anwendungen:Photorealistische Computergrafik”.Haufig bidirektionale Reflektionsverteilungsfunktionen inAbhangigkeit von Lichtrichtungsvektoren ωi und ωo (kompliziertereModelle sind moglich).C ist i. Allg. Farbe oder spektrale Energieverteilung.

Page 47: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Rasterisierung - Eingabedaten (4)

Kameraparameter

Matrix MV ∈ R4×4 (extrinsische Kameraparameter).Matrix PR ∈ R4×4 (intrinsische Kameraparameter).Bildebene definiert durch Rechteck VP = (x , y ,w , h)

(Ursprung + Breite und Hohe).

Extrinsische Parameter → Positionierung und Orientierung derKamera bzgl. der Geometrie (affine Transformationen).

Intrinsische Parameter transkodieren, wie die perspektivischeVerzerrung (der Effekt, dass entfernte Objekte kleiner erscheinen)anzuwenden ist. Hangen von Kameraeigenschaften wieBlendenoffnungswinkel, fokale Lange etc. ab.

Page 48: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Rasterisierung - Ausgabe

Rasterbild I (VP), Dimensionen gemaß VP aus den Eingabedaten.

Page 49: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Rasterisierung Algorithmus 1

function Rasterisierung(V,M,L,f,MV,PR,VP)for all v1, v2, v3 ∈ V do

Transformationen(v1,v2,v3,MV,PR)Clipping(v1,v2,v3,PR)T ←ErzeugeDreiecke(v1,v2,v3)for all t ∈ T do

Fragmente ←ScanKonvertierung(t,VP)for all F ∈ Fragmente do

for all Lj ∈ Lichtquellen doBeleuchte(F,M,Lj ,f)

end forTiefenTest(F, I)AlphaBlending(F, I)

end forend for

end forend function

Page 50: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Rasterisierung - Vertex Phase

function Rasterisierung(V,M,L,f,MV,PR,VP)for all v1, v2, v3 ∈ V do

Transformationen(v,MV,PR)Clipping(v,PR)...

end forend function

1. Wende Viewing- und Perspektivische auf jedes Vertex an.

2. Clippe Vertices am Sichtbaren Frustum.

Page 51: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Rasterisierung - Primitive Assembly

function Rasterisierung(V,M,L,f,MV,PR,VP)...T ←ErzeugeDreiecke(v1,v2,v3)...

end function

3. Fur jedes Eingabedreieck {v1, v2, v3}, erzeuge Dreiecke, diesich nach Clipping ergeben.

Page 52: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Rasterisierung - Fragment Phase

function Rasterisierung(V,M,L,f,MV,PR,VP)...for all t ∈ T do

Fragmente ←ScanKonvertierung(t,VP)for all f ∈ Fragmente do

for all Lj ∈ Lichtquellen doBeleuchte(F,M,Lj ,f)

end forTiefenTest(F, I)AlphaBlending(F, I)

end forend for...

end function

4. Fragmente ergeben sich nach Scan Konvertierung.

5. Jedes Fragment wird beleuchtet, erst dann Tiefentest!

Page 53: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Rasterisierung Algorithmus 1 - Bemerkungen

▶ Manche Implementierungen fuhrenBeleuchtungsberechnungen auf den Vertices durch undinterpolieren spater die resultierenden Farben.

▶ Der Algorithmus unterstutzt sowohl opake als auchteiltransparente Geometrie. I. d. R. wird man den Tiefentestnur fur opake, und Alpha-Blending nur fur teiltransparenteFragmente ausfuhren.

▶ APIs (Direct3D, OpenGL, Vulkan) garantieren, dassReihenfolge wahrend Fragment Phase Eingabereihenfolgeentspricht.

Page 54: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Rasterisierung Algorithmus 1 - Worst-Case Komplexitat

Vorabuberlegungen

▶ Aus der Primitive Assembly Phase ergeben sich durch Clippingbis zu vier Dreiecke. Die Schleife uber alle Dreiecke T lasstsich also durch O (4) abschatzen.

▶ Die Anzahl an Fragmenten, die nach Scan Konvertierung einesDreiecks entstehen, ist durch O(VP) beschrankt, wobei VPdie Bildschirmauflosung bezeichnet.

▶ Wir nehmen an, dass es fur die SubroutinenTransformationen und Clipping, Beleuchte,TiefenTest, AlphaBlending und ErzeugeDreieckejeweils O(1) Algorithmen gibt. ScanKonvertierung istdurch O(VP) beschrankt.

Page 55: Architektur und Programmierung von Grafik- und ... · Hardware Implementierung geht h au g mit dediziertem Befehlssatz fur den Algorithmus einher (z. B. Register f ur 4-Komponenten

Rasterisierung - Worst-Case Komplexitat

Es ergibt sich also im schlechtesten Fall fur den AlgorithmusRasterisierung (1) die Komplexitat:

O(V )×O(4)× (O(VP)×O(L)+O(VP)) = O(V ×VP×L) (20)

Wir wollen im folgenden vereinfachend annehmen, dass die AnzahlLichtquellen L konstant ist. Damit ergibt sich dieLaufzeitkomplexitat

O(V × VP). (21)

Wenn wir uns mit “Deferred Shading” beschaftigen, werden wirwieder von variabel vielen Lichtquellen ausgehen.