Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die...

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

Transcript of Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die...

Page 1: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

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 ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Lernziele

1. Industrierelevante 3D Rendering Algorithmen - wir lernendrei Algorithmen kennen, die derzeit in Industrie undWissenschaft fur “Wissenschaftliche Visualisierung,“Spielegrafik” und “Photorealistische Grafik” relevant sind.

Rasterisierung - auf Grafikkarten als “fixed-function”implementiert, wird studiert, um spater GPU Architekturen zuverstehen.

Deferred Shading - eine Methode, bei der die fixed-functionGrafik Pipeline mit Beleuchtung im Bildraum kombiniert wird.

Ray Tracing - mit physikalisch basiertem Rendering basierendauf Strahlverfolgungsmethoden wird eine alternative Familievon Rendering Algorithmen eingefuhrt, die wir spater imThemengebiet GPGPU weiter studieren.

2. Paralleles Rendering - die Studenten lernen RenderingAlgorithmen fur parallele Architekturen mit geteiltem undverteiltem Speicher kennen.

Page 3: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Konzepte und Definitionen

Page 4: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Grundlegendes

Rendering

Der Zweck von 3D Computer Grafik ist es, ausgehend von einersystematischen Beschreibung von in einer virtuellen,dreidimensionalen Welt positionierten Entitaten 2D Rasterbilder zuerzeugen. Der damit einhergehende Prozess nennt sich Rendering.

Echtzeit Rendering Algorithmus

Rendering Algorithmus, der neue Bilder immer mit so niedrigerLatenz rendern kann, dass das menschliche Auge den Ubergangzwischen den Bildern als kontinuierlich wahrnimmt.

Fullratenlimitierung

Wenn die Rendering Performanz (oft gemessen in Frames proSekunde, FPS) proportional zur Bildauflosung ist, bezeichnet manden Rendering Algorithmus als fullratenlimitiert (engl.: fill ratelimited).

Page 5: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Vereinfachende Annahmen

Echtzeit Rendering Algorithmen treffen i. d. R. die folgendenAnnahmen.

Wir rendern solide Objekte, die sich in einem Vakuumbefinden.

Licht verhalt sich entsprechend Teilchen (Photonen), dieentlang gerader Bahnen verlaufen (Licht/Materie Interaktionunabhangig von Wellenlange des Lichts).

Es besteht keine Zeitabhangigkeit, solange Beschreibung dervirtuellen Welt unverandert.

Mit zunehmender Compute Power und/oder abnehmendenAnforderungen an Antwortzeiten werden diese Annahmen relaxiert.

Page 6: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Lichttransportgleichung

Die “ultimative”, dem Rendering Prozess zu Grunde liegendeGleichung ist die Lichttransportgleichung. In ihrer einfachsten Form(Vakuum, keine Wellenlangenabhangigkeit, keine Zeitabhangigkeit)lautet sie:

L(x, ωo) = Le(x, ωo) +

∫Ωf (x, ωi , ωo)L(x, ωi )cos(θi )d ωi . (1)

Sie wird uns im Verlauf der Vorlesung wieder begegnen.

Take-Away heute:

Wir wollen die ausgehende Lichtintensitat von Punkt x inRichtung ωi bestimmen.

Dazu integrieren wir das Licht, das aus allen Richtungenomegai aus der Hemisphare Ω in Richtung x reflektiert wird.

Die Gleichung ist rekursiv.

Page 7: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Polygone

Wir betrachten lediglich flache 3D Oberflachen reprasentiert durchPolygone. Mit diesen kann man die infinitesimal dunnen Ubergangezwischen zwei Medien (etwa Luft und Stein) modellieren. Wirabstrahieren (ohne Beschrankung der Allgemeinheit) davon, dassMaterialen eine Dicke haben. Das Dreieck ist das Basisprimitiv, mitHilfe dessen man alle anderen (konvexen oder konkaven) Polygonebeschreiben kann.

Page 8: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Dreiecksnetze

Dreiecksnetze werden aus Einzeldreiecken gebildet. Mit Hilfe vonDreiecksgeometrie lassen sich komplexe Strukturen erzeugen.

Abbildung: Modelle: Stanford Bunny (Stanford 3D Scanning Repository)und Blender 2.77 Racing Car (Pokedstudio, CC-BY-SA), Rendering:Stefan Zellmann

Page 9: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Oberflachennormalen

Einheitsvektoren, die senkrecht zur Oberflache sind.Elementarelement in der 3D Computergrafik, z. B. furOberflachenbeleuchtung und Sichtbarkeitstests.

Z

Y

Page 10: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Oberflachennormalen

Einfache “Dot-Product” Operationen mit Oberflachennormalen N.Sei V Einheitsvektor zum Betrachter, sei L Einheitsvektor zu einerPunktlichtquelle.

N · L < 0: Lichtquelle beleuchtet Objekt von hinten.

N · L ∈ (0..1]: Einfach(st)es Beleuchtungsmodell modelliertLicht proportional zum Winkel zwischen N und L.

N · V < 0: einfacher Sichtbarkeitstest fur geschlosseneObjekte.

Page 11: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Vertexnormalen

Normalen werden haufig fur jeden mit den Dreiecken assoziiertenVertex gespeichert. Dann werden meist alle benachbartenOberflachennormalen gemittelt.

for all v ∈ Vertices dovn← Vec3(0) ▷ Initalisiere mit 0-Vektorfor all n ∈ AdjacentSurfaceNormals do

vn← vn + nend forvn← vn / NumAdjacentNormal

end for

Werden solche Normalen zur Beleuchtung verwendet, ergibt sichauch fur niedrig aufgeloste Dreiecksstrukturen die Illusion, dasskantige Oberflachen glatt sind.

Page 12: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Vertexnormalen

Face Normals Interpolated Vertex Normals

Vertexnormalen werden (i. d. R. linear) uber derDreiecksoberflache interpoliert.

Page 13: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Vertexnormalen

Abbildung: 3D Model: Yusuke Yamada, CC-BY 4.0https://github.com/lighttransport/lighttransportequation-glass,Rendering: Stefan Zellmann

Page 14: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Affine Transformationen

Transformationen, die die Topologie erhalten, z. B. Bewegungeines Objekts im 3D Raum, Kamerafahrt durch eine 3DSzene, etc.

Die drei wichtigsten affinen Transformationen sind Rotation,Translation und Skalierung.

Diese drei Transformationen lassen sich in einer 4× 4 Matrixzusammenfassen und akkumulieren (Multiplikation).

Mit dieser Matrix kann man die Dreiecksverticestransformieren. Da wir 3D Primitive mit 3D Vertices haben,setzen wir die 4. Koordinate (“w” Koordinate) auf 1.

Page 15: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Affine Transformationen

Y

Z

X

Y

Z

X

Y

Z

X

Y

Z

X

Y

Z

X

Y

Z

X

Y

Z

X

Y

Z

X

Y

Z

X

Y

Z

X

Y

Z

X

Y

Z

X

Y

Z

X

Y

Z

X

Y

Z

X

Y

Z

X

Y

Z

X

Y

Z

X

Y

Z

X

Y

Z

X

Mit Hilfe von Rotation um die kartesischen Hauptachsen,Translation/Verschiebung und Skalierung kann man eine virtuelleKamera im Raum positionieren. Die Kameratransformation lasstsich als eine 4× 4 Transformationsmatrix ausdrucken, die dieEinzeltransformationen akkumuliert.

Page 16: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Model- und Viewing Transformation

Wir gehen im Weiteren (o. B. d. A.) davon aus, dass wirstatische Geometrie anzeigen. Es entfallt daher die sog.“Model Transformation”, die Einzelobjekte vom“Weltkoordinatensystem” in ein spezifisches“Objektkoordinatensystem” transformiert.

Kameratransformation und Welttransformation unterscheidensich nur bzgl. des Bezugssystems. Wir gehen im Weiterendavon aus, dass es eine gemeinsame Transformationsmatrixgibt, die beide Transformationen subsummiert. Wir sprechenverallgemeinernd von der “Viewing Transformation”.

Page 17: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Perspektivische Transformation

Definiere Sichtbares Frustum mithilfevon Kamerablendenoffnungswinkel fsowie zwei Sichtbarkeitsebenen znearund zfar .

Objekte jenseits des Frustums sindunsichtbar (sie werden “geclipped”).

Es gibt eine 4× 4 Matrix (die“Projektionsmatrix”), dieVertexpositionen vom SichtbarenFrustum im Weltkoordinatensystem inden Einheitswurfel uberfuhrt.

Page 18: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Perspektivische Transformation

“Frustum Method”:

PR =

2near

right−left 0 right+leftright−left 0

0 2neartop−bottom

top+bottomtop−bottom 0

0 0 −(far+near)far−near

−2far ·nearfar−near

0 0 −1 0

Page 19: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Perspektivische Transformation

“Perspective Method”:

PR =

1

aspect·tan(FOV /2) 0 0 0

0 1tan(FOV /2) 0 0

0 0 near+farnear−far

2near ·farnear−far

0 0 −1 0

Page 20: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Perspektivische Transformation

Kamerakoordinaten

-z

camera coordinates

world coordinates

-z

Transformation 1: Weltkoordinaten ⇒ Kamerakoordinaten (auchAugkoordinaten): Betrachter im Ursprung, Blickrichtung entlang“negativem z”.

Page 21: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Perspektivische Transformation

Orthographische Koordinaten

camera coordinates

-z

orthographic coordinates

Transformation 2: uberfuhre in orthographischesKoordinatensystem.

Auch: Clip Koordinaten – APIs fuhren in diesemKoordinatensystem Clipping mit z-Near/z-Far sowie anderen,benutzerdefinierten Clip Ebenen durch.

Page 22: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Perspektivische Transformation

Normalisierte Geratekoordinaten

normalized device coordinatesorthographic coordinates

-1.0 1.0

1.0

-1.0

Transformation 3: uberfuhre in normalisiertes orthographischesKoordinatensystem (APIs: “normalized device coordinates”(NDC)). Wurfel im Ursprung mit Kantenlange 2. Orientierung jenach API unterschiedlich (z. B. OpenGL: “linkshandig”, Vulkanrechtshandig).

Page 23: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Perspektivische Transformation

Fensterkoordinaten

normalized device coordinates

-1.0 1.0

1.0

-1.0

window coordinates

y1 1.0

image plane

y2

0.0

Transformation 4: Viewport Transformation uberfuhrt von NDC inFensterkoordinaten. Je nach API Ursprung links unten (OpenGL)oder links oben (Direct3D, Vulkan).

Page 24: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Perspektivische Transformation

Orthographische Projektion

window coordinates

y1 1.0

image plane

y2

0.0

Projektion auf Bildschirmebene mit orthographischer Projektioneinfach. Daher wird perspektivische Projektion auf orthographischeProjektion zuruckgefuhrt.

Page 25: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Transformationen

Bemerkung zu Transformationen

Die mit Transformationen einhergehenden Konzepte sinddeutlich komplexer als hier angedeutet. Transformationenwerden in Tiefe in Computergrafik 1 behandelt.

Fur uns ist es wichtig zu verstehen: dass mit einer Kameraeinstellung zwei Transformationen

verbunden sind: die Perspektivische Transformation sowie dieViewing Transformation,

dass sich die Viewing Transformation andert, wenn sich dieKamera bewegt,

dass die Perspektivische Transformation intrinsischeKameraparameter speichert, die sich selten verandern,

und dass jede der beiden Transformationen durch eine einzelne4× 4 Matrix ausgedruckt wird, mit der die Vertices homogen(d. h. w = 1) transformiert werden.

Page 26: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Scan Konvertierung

Bildet ein transformiertes 3D Primitiv auf ein 2D Raster ab.

Basisoperation fur Rasterisierungsalgorithmus.

Es gibt eine Vielzahl von Verfahren fur verschiedene 3DPrimitive. Einfache Verfahren gehen zeilenweise das Bildrasterab und uberprufen fur ein Primitiv, ob es die Rasterposition(Pixel) uberdeckt.

Uns interessieren Verfahren, die effizient in paralleler Hardwareimplementierbar sind.

Page 27: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Scan Konvertierung

“Traditionell”: rastere Kanten des Polygons mit Algorithmuswie Bresenham oder DDA.

Interpoliere z-Werte und Vertex Attribute (Farbe, Normalen,Texturkoordinaten, etc.) zwischen den Kanten mit ScanlineVerfahren.

Vergleiche CGV 1.

Problem: sowohl Algorithmen zur Kantenberechnung als auchScanline Konversion seriell, ungunstig fur paralleleArchitekturen zu adaptieren.

Page 28: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Scan Konvertierung

Es existieren Scan Konvertierungs Algorithmen, die geeigneterfur parallele Architekturen wie GPUs sind.

Pineda: A Parallel Algorithm for Polygon Rasterization(Siggraph 1988).

A

B

C+

-

-

-

Page 29: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Scan Konvertierung

Einfache Idee: Kantengleichungen determinieren Halbraume. Unionder Halbraum ⇒ Dreiecksinnenflache. Gegeben: Dreieck v1, v2, v3,wobei vix und viy Rasterposition x- und y -Richtung.

1. Berechne Umbox von v1, v2 und v3

2. Berechne Kantenvektoren:

e1 = v1 − v3

e2 = v2 − v1

e3 = v3 − v2

3. Fur jedes Pixel x , y in Umbox parallel bestimme ob innerhalbDreiecksinnenflache gemaß

Ei (x , y) = (x − vix)eiy − (y − viy )eix , i ∈ 1, 2, 3.

4. Ei > 0⇒ innerhalb Dreiecksinnenflache, Ei = 0⇒ trifftKante, sonst außerhalb.

Page 30: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Scan Konvertierung

Besondere Eigenschaft:

Ei (x + 1, y) = Ei (x , y) + eiy ,

Ei (x − 1, y) = Ei (x , y)− eiy ,

Ei (x , y + 1) = Ei (x , y)− eix ,

Ei (x , y − 1) = Ei (x , y) + eix .

Ideal fur Rendering mit kleinen Kacheln: bestimme Ei (x , y) fur einPixel aus einer Kachel von z. B. 8× 8 oder 16× 16 Rasterpunkten.Die ubrigen Rasterpunkte konnen mit einfacher Integer Additiongetestet werden ⇒ ideal fur Hardware Implementierung.

Page 31: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Scan Konvertierung

Besondere Eigenschaft:

Ei (x + 1, y) = Ei (x , y) + eiy ,

Ei (x − 1, y) = Ei (x , y)− eiy ,

Ei (x , y + 1) = Ei (x , y)− eix ,

Ei (x , y − 1) = Ei (x , y) + eix .

Die Eigenschaft fuhrt Datenabhangigkeit ein. Abwagung: eherDatenabhangigkeit und dafur nur Integer Addition, oderParallelismus, dafur Integer Vektoroperation.

Der Algorithmus wird uns bei Besprechung von Raster Engines derGPU Pipeline wiederbegegnen.

Page 32: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Lichtquellen

Verschiedene Arten von Licht-Oberflachen Interaktion.

Manche 3D Entitaten (z. B. Festkorper, gasformigeAusdehnungen, etc.) konnen Licht emittieren.

Je nach Realismusgrad werden solche Entitatenunterschiedlich modelliert.

In einfachen Fallen modelliert man Lichtquelle ansausdehnungslosen Punkt mit konstanter Intensitat.

In komplexeren Szenarien simuliert man lichtemittierendeObjekte als Volumen oder mit Hilfe bestimmterMaterialeigenschaften.

Wir sprechen verallgemeinernd von Lichtquellen. Fur jedeLichtquelle muss es zumindest moglich sein:

die ankommende Intensitat an einem Punkt x im Raum, sowie einen Vektor hin zur Lichtquelle zu ermitteln.

Page 33: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Lichtquellen

Lichtemittierende Materialien

Page 34: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Materialeigenschaften

Wahrgenommene Farbe (Illuminanz) von Objekten durchTeilcheninteraktion von Licht und Materie.

Farbwahrnehmung: photometrische Großen, (Luminance,Luminous Flux, Illuminance,..), Licht/Materie Interaktion:radiometrische Großen (Radiance, Radiant Flux, Irradiance,..).Werden im Vorlesungsteil zu Anwendungen ausfuhrlichbehandelt.

Wichtig furs erste: sowohl Licht als auch Materie furFarbwahrnehmung verantwortlich, daher werden furOberflachen Materialeigenschaften definiert, die aufunterschiedliche Art gespeichert werden konnen.

Page 35: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Materialeigenschaften

Diffuse MaterialienLicht dringt in Objekt ein und tritt an zufalliger Position wiederaus ⇒ “Subsurface Scattering”.

ωi ωo

Page 36: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Materialeigenschaften

Diffuse MaterialienEchtes Subsurface Scattering aufwendig zu berechnen. Aus einerEntfernung sieht es außerdem im Mittel so aus, als wareAustrittsposition des reflektierten Lichts fur alle eintreffendenLichtteilchen (Photonen) gleich.

Daher haufig Approximation durch einfaches diffusesBeleuchtungsmodell.

Lr = max(0, dot(ωi , n) (2)

Page 37: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Materialeigenschaften

Diffuse Materialien

ωi ωoωi ωo

ωi ωoωi ωo

ωi ωoωi ωo

ωi ωoωi ωo

ωiωi

Page 38: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Materialeigenschaften

Raue Oberflachen

Werden i. d. R. statistisch als sog. Mikrofacetten modelliert.

Reflektieren Licht in praferierte Richtung.

Selbstverschattung und Okklusion zwischen Mikrofacettenwerden nicht explizit (Geometrie) sondern statistischmodelliert.

Page 39: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Materialeigenschaften

Raue Oberflachen

Abbildung: Mikrofacetten werden statistisch als Materialeigenschaftmodelliert. Abbildung in Anlehnung an Akenine Moller, Haines, Hoffman:Real-Time Rendering 3rd edition (2008).

Page 40: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Texture Mapping

Kleine Details bildet man aus Performanz- oderSpeicherplatzgrunden haufig nicht als Geometrie ab, sondernrendert stattdessen grob aufgeloste, flache Polygone und“uberzieht” diese mit Detailinformation aus 2D Rasterbildern.

Zu den Vertices werden Texturkoordinaten gespeichert, die indie 2D Rasterbilder zeigen. Bei der Abbildung vonTexturkoordinaten auf Rasterpunkte wird i. d. R. linearinterpoliert.

Page 41: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Texture Mapping

Lineare Interpolation beim Texture Mapping

[u|v] = (0.4,0.4)

Barycentric Interpolation

a.)

c.)

b.)

lerp(tc1,tc2, u)

(1-u) * tc1 + u * tc2

lerp(tc1,tc3, v)

(1-v) * tc1 + v * tc2

lerp(tc2,tc3, 1-u-v)

(1-(1-u-v)) * tc1 + (1-u-v) * tc2

Linear Interpolation

Bilinear Interpolation

Page 42: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Texture Mapping

Tabelle: Crytek Sponza 3D Modell: Frank Meinl, (CC-BY 3.0),Rendering: Stefan Zellmann

Page 43: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Normal Mapping

Variiere Normalenrichtung auf flacher Oberflache gemaßkomplexerer Geometrie. Geringer Speicherbedarf, Illusionfunktoniert, wenn Oberflache aus Entfernung betrachtet wird.

Page 44: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Normal Mapping

Abbildung: generiert mit https://cpetry.github.io/NormalMap-Online/

Page 45: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Bemerkungen

Makroskopisch vs. Mikroskopisch: Mikroskopisch: modelliere Rauheit als Teil der Materialfunktion

(z. B. BRDF, Gegenstand von Vorlesungsteil “Anwendungen”). Mesoskopisch: Texturen, perturbierte Normalen etc. (s. u.). Makroskopisch: Oberflachendetails explizit als Geometrie. (Real-Time Rendering Pramisse: wenig Geometrie!)

Physikalisch basierte Renderer verwenden oft mehrereTexturen fur Materialeigenschaften:

Diffus Normalen Albedo Rauheit ...

Page 46: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Tiefentest

Rasterpunkte: Tiefenpuffer Datenstruktur speichert Fragment mitz-Koordinate am nachsten zum Betrachter.

Alpha Blending: teiltransparente Fragmente determinierenzusammen Farbe an Bildrasterposition (Pixel).

Page 47: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Alpha Blending

Teiltransparente Geometrie

Abbildung: Teiltransparente Geometrie muss tiefenkorrekt gezeichnetwerden, da Alpha Blending Operation nicht kommutativ.

Page 48: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Alpha Blending

Der einfachste Ansatz ist es, bei jeder Kameraanderung (nur)die teiltransparente Geometrie gemaß der Blickrichtung zusortieren.

Fragmente, die sich im weiteren Verlauf ergeben, blendet manz. B. durch Vormultiplikation der Eingangsfarbe mit Alphaund der over Operation:

cdst = csrc + (1− αsrc)cdst , (3)

wobei Subscript src und dst jeweils Eingangs- undAusgangsfarbe bezeichnen.

Weiterfuhrende Methoden fur tiefenkorrektes Alpha Blending:Depth Peeling, Linked Lists auf Fragment-Basis.

Page 49: Architektur und Programmierung von Grafik- und ... · Deferred Shading - eine Methode, bei der die xed-function Gra k Pipeline mit Beleuchtung im Bildraum kombiniert wird. Ray Tracing

Double Buffering

B0 B1

Graphic Controller,Graphic Controller,DAC, etc.DAC, etc.

Swap

Swap

Draw Commands