Architektur und Programmierung von Grafik- und ......Lernziele 1. Industrierelevante 3D Rendering...

49
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Architektur und Programmierung von Grafik- und Koprozessoren Rendering Algorithmen Stefan Zellmann Lehrstuhl für Informatik, Universität zu Köln SS2019

Transcript of Architektur und Programmierung von Grafik- und ......Lernziele 1. Industrierelevante 3D Rendering...

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Architektur und Programmierung von Grafik- undKoprozessoren

Rendering Algorithmen

Stefan Zellmann

Lehrstuhl für Informatik, Universität zu Köln

SS2019

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Lernziele

1. Industrierelevante 3D Rendering Algorithmen - wir lernendrei Algorithmen kennen, die derzeit in Industrie undWissenschaft für “Wissenschaftliche Visualisierung,“Spielegrafik” und “Photorealistische Grafik” relevant sind. Rasterisierung - auf Grafikkarten als “fixed-function”

implementiert, wird studiert, um später 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 eingeführt, die wir später imThemengebiet GPGPU weiter studieren.

2. Paralleles Rendering - die Studierenden lernen RenderingAlgorithmen für parallele Architekturen mit geteiltem undverteiltem Speicher kennen.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Konzepte und Definitionen

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Grundlegendes

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

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

FüllratenlimitierungWenn die Rendering Performanz (oft gemessen in Frames proSekunde, FPS) proportional zur Bildauflösung ist, bezeichnet manden Rendering Algorithmus als füllratenlimitiert (engl.: fill ratelimited).

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Grundlegendes

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

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

FüllratenlimitierungWenn die Rendering Performanz (oft gemessen in Frames proSekunde, FPS) proportional zur Bildauflösung ist, bezeichnet manden Rendering Algorithmus als füllratenlimitiert (engl.: fill ratelimited).

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Grundlegendes

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

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

FüllratenlimitierungWenn die Rendering Performanz (oft gemessen in Frames proSekunde, FPS) proportional zur Bildauflösung ist, bezeichnet manden Rendering Algorithmus als füllratenlimitiert (engl.: fill ratelimited).

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Vereinfachende AnnahmenEchtzeit Rendering Algorithmen treffen i. d. R. die folgendenAnnahmen. Wir rendern solide Objekte, die sich in einem Vakuum

befinden. Licht verhält sich entsprechend Teilchen (Photonen), die

entlang gerader Bahnen verlaufen (Licht/Materie Interaktionunabhängig von Wellenlänge des Lichts).

Es besteht keine Zeitabhängigkeit, solange Beschreibung dervirtuellen Welt unverändert.

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

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

LichttransportgleichungDie “ultimative”, dem Rendering Prozess zu Grunde liegendeGleichung ist die Lichttransportgleichung. In ihrer einfachsten Form(Vakuum, keine Wellenlängenabhängigkeit, keine Zeitabhängigkeit)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 Lichtintensität von Punkt x in

Richtung ωo bestimmen. Dazu integrieren wir das Licht, das aus allen Richtungen ωi

aus der Hemisphäre Ω in Richtung x reflektiert wird. Die Gleichung ist rekursiv.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

PolygoneWir betrachten lediglich flache 3D Oberflächen repräsentiert durchPolygone. Mit diesen kann man die infinitesimal dünnen Übergängezwischen zwei Medien (etwa Luft und Stein) modellieren. Wirabstrahieren (ohne Beschränkung der Allgemeinheit) davon, dassMaterialen eine Dicke haben. Das Dreieck ist das Basisprimitiv, mitHilfe dessen man alle anderen (konvexen oder konkaven) Polygonebeschreiben kann.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

DreiecksnetzeDreiecksnetze 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

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

OberflächennormalenEinheitsvektoren, die senkrecht zur Oberfläche sind.Elementarelement in der 3D Computergrafik, z. B. fürOberflächenbeleuchtung und Sichtbarkeitstests.

Z

Y

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

OberflächennormalenEinfache “Dot-Product” Operationen mit Oberflächennormalen 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 modelliert

Licht proportional zum Winkel zwischen N und L. N ·V < 0: einfacher Sichtbarkeitstest für geschlossene Objekte.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

VertexnormalenNormalen werden häufig für jeden mit den Dreiecken assoziiertenVertex gespeichert. Dann werden meist alle benachbartenOberflächennormalen gemittelt.

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

vn← vn + nend forvn← vn / NumAdjacentNormal

end forWerden solche Normalen zur Beleuchtung verwendet, ergibt sichauch für niedrig aufgelöste Dreiecksstrukturen die Illusion, dasskantige Oberflächen glatt sind.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Vertexnormalen

Face Normals Interpolated Vertex Normals

Vertexnormalen werden (i. d. R. linear) über derDreiecksoberfläche interpoliert.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Vertexnormalen

Abbildung: Links: nur Oberflächennormalen, rechts: Vertexnormalen.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Affine Transformationen Transformationen, die die Topologie erhalten, z. B. Bewegung

eines 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.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

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 lässtsich als eine 4× 4 Transformationsmatrix ausdrücken, die dieEinzeltransformationen akkumuliert.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Model- und Viewing Transformation Wir gehen im Weiteren (o. B. d. A.) davon aus, dass wir

statische Geometrie anzeigen. Es entfällt 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”.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Perspektivische Transformation

Definiere Sichtbares Frustum mithilfevon Kamerablendenöffnungswinkel 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 Einheitswürfel überführt.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

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

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Perspektivische Transformation

“Perspective Method”:

PR =

1

aspect·tan(FOV/2) 0 0 00 1

tan(FOV/2) 0 00 0 near+far

near−far2near·farnear−far

0 0 −1 0

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Kameratransformationen

Kamerakoordinaten

-z

camera coordinates

world coordinates

-z

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

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Kameratransformationen

Orthographische Koordinatencamera coordinates

-z

orthographic coordinates

Transformation 2: überführe in orthographischesKoordinatensystem.Auch: Clip Koordinaten – APIs führen in diesemKoordinatensystem Clipping mit z-Near/z-Far sowie anderen,benutzerdefinierten Clip Ebenen durch.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Kameratransformationen

Normalisierte Gerätekoordinatennormalized device coordinatesorthographic coordinates

-1.0 1.0

1.0

-1.0

Transformation 3: überführe in normalisiertes orthographischesKoordinatensystem (APIs: “normalized device coordinates”(NDC)). Würfel im Ursprung mit Kantenlänge 2. Orientierung jenach API unterschiedlich (z. B. OpenGL: “linkshändig”, Vulkanrechtshändig).

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Kameratransformationen

Fensterkoordinatennormalized device coordinates

-1.0 1.0

1.0

-1.0

window coordinates

y1 1.0

image plane

y2

0.0

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

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Kameratransformationen

Orthographische Projektion

window coordinates

y1 1.0

image plane

y2

0.0

Projektion auf Bildschirmebene mit orthographischer Projektioneinfach. Daher wird perspektivische Projektion auf orthographischeProjektion zurückgeführt.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Transformationen

Bemerkung zu Transformationen Die mit Transformationen einhergehenden Konzepte sind

deutlich komplexer als hier angedeutet. Transformationenwerden in Tiefe in Computergrafik 1 behandelt.

Für 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 ändert, wenn sich dieKamera bewegt,

dass die Perspektivische Transformation intrinsischeKameraparameter speichert, die sich selten verändern,

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

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Scan Konvertierung

Bildet ein transformiertes 3D Primitiv auf ein 2D Raster ab. Basisoperation für Rasterisierungsalgorithmus. Es gibt eine Vielzahl von Verfahren für verschiedene 3D

Primitive. Einfache Verfahren gehen zeilenweise das Bildrasterab und überprüfen für ein Primitiv, ob es die Rasterposition(Pixel) überdeckt.

Uns interessieren Verfahren, die effizient in paralleler Hardwareimplementierbar sind.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Scan Konvertierung “Traditionell”: rastere Kanten des Polygons mit Algorithmus

wie 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 auch

Scanline Konversion seriell, ungünstig für paralleleArchitekturen zu adaptieren.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Scan Konvertierung

A

B

C+

-

-

-

Es existieren Scan Konvertierungs Algorithmen, die geeigneterfür parallele Architekturen wie GPUs sind.

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

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Scan Konvertierung

A

B

C+

-

-

-

Einfache Idee: Kantengleichungen determinieren Halbräume. Unionder Halbräum ⇒ Dreiecksinnenfläche.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Scan KonvertierungGegeben: 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 − v2

e2 = v2 − v3

e3 = v3 − v1

3. Für jedes Pixel x, y in Umbox parallel bestimme ob innerhalbDreiecksinnenfläche gemäß

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

4. Ei > 0⇒ innerhalb Dreiecksinnenfläche, Ei = 0⇒ trifftKante, sonst außerhalb.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Scan KonvertierungBesondere 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 für Rendering mit kleinen Kacheln: bestimme Ei(x, y) für einPixel aus einer Kachel von z. B. 8× 8 oder 16× 16 Rasterpunkten.Die übrigen Rasterpunkte können mit einfacher Integer Additiongetestet werden ⇒ ideal für Hardware Implementierung.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Scan KonvertierungBesondere 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 führt Datenabhängigkeit ein. Abwägung: eherDatenabhängigkeit und dafür nur Integer Addition, oderParallelismus, dafür Integer Vektoroperation.

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

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Lichtquellen Verschiedene Arten von Licht-Oberflächen Interaktion. Manche 3D Entitäten (z. B. Festkörper, gasförmige

Ausdehnungen, etc.) können Licht emittieren. Je nach Realismusgrad werden solche Entitäten

unterschiedlich modelliert. In einfachen Fällen modelliert man Lichtquelle als

ausdehnungslosen Punkt mit konstanter Intensität. In komplexeren Szenarien simuliert man lichtemittierende

Objekte als Volumen oder mit Hilfe bestimmterMaterialeigenschaften.

Wir sprechen verallgemeinernd von Lichtquellen. Für jedeLichtquelle muss es zumindest möglich sein: die ankommende Intensität an einem Punkt x im Raum, sowie einen Vektor hin zur Lichtquelle zu ermitteln.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Lichtquellen

Lichtemittierende Materialien

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Materialeigenschaften Wahrgenommene Farbe (Illuminanz) von Objekten durch

Teilcheninteraktion von Licht und Materie. Farbwahrnehmung: photometrische Größen, (Luminance,

Luminous Flux, Illuminance,..), Licht/Materie Interaktion:radiometrische Größen (Radiance, Radiant Flux, Irradiance,..).

Wichtig fürs erste: sowohl Licht als auch Materie fürFarbwahrnehmung verantwortlich, daher werden fürOberflächen Materialeigenschaften definiert, die aufunterschiedliche Art gespeichert werden können.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Materialeigenschaften

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

ωi ωo

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Materialeigenschaften

Diffuse MaterialienEchtes Subsurface Scattering aufwendig zu berechnen. Aus einerEntfernung sieht es außerdem im Mittel so aus, als wäreAustrittsposition des reflektierten Lichts für alle eintreffendenLichtteilchen (Photonen) gleich.

Daher häufig Approximation durch einfaches diffusesBeleuchtungsmodell.

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

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Materialeigenschaften

Diffuse Materialienωi ωoωi ωo

ωi ωoωi ωo

ωi ωoωi ωo

ωi ωoωi ωo

ωiωi

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Materialeigenschaften

Raue Oberflächen Werden i. d. R. statistisch als sog. Mikrofacetten modelliert. Reflektieren Licht in präferierte Richtung. Selbstverschattung und Okklusion zwischen Mikrofacetten

werden nicht explizit (Geometrie) sondern statistischmodelliert.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Materialeigenschaften

Raue Oberflächen

Abbildung: Mikrofacetten werden statistisch als Materialeigenschaftmodelliert. Abbildung in Anlehnung an Akenine Möller, Haines, Hoffman:Real-Time Rendering 4th edition (2018).

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Materialeigenschaften

Raue OberflächenH

VI

Verschattung

Verdeckung

Abbildung: “Half vector” (vgl. z. B. Blinn Phong Modell aus CGV 1).Wegen Verdeckung und Verschattung tragen nur diejenigenMikrofacetten zur Lichtreflektion bei, deren Oberflächennormale mit demVektor H zwischen Betrachter und Licht zusammenfällt.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Texture Mapping Kleine Details bildet man aus Performanz- oder

Speicherplatzgründen häufig nicht als Geometrie ab, sondernrendert stattdessen grob aufgelöste, flache Polygone und“überzieht” 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.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

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

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Texture Mapping

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

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Normal MappingVariiere Normalenrichtung auf flacher Oberfläche gemäßkomplexerer Geometrie. Geringer Speicherbedarf, Illusionfunktioniert, wenn Oberfläche aus Entfernung betrachtet wird.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Normal Mapping

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

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

...

.

Bemerkungen Makroskopisch vs. Mikroskopisch:

Mikroskopisch: modelliere Rauheit als Teil der Materialfunktion(z. B. BRDF - Bidirectional Reflectance DistributionFunction).

Mesoskopisch: Texturen, perturbierte Normalen etc. (s. u.). Makroskopisch: Oberflächendetails explizit als Geometrie. (Real-Time Rendering Prämisse: wenig Geometrie!)

Physikalisch basierte Renderer verwenden oft mehrereTexturen für Materialeigenschaften: Diffus Normalen Albedo Rauheit ...