Sie sind auf Seite 1von 39

Teil 2: Texturing

Vorlesung
Computergrafik und Animation
A.L.Fuhrmann
Wozu?
Mit Textur:
 Farbe
 Oberflächenstruktur
 Reflexion, Transparenz
 Highlights

2015 Teil 2: Texturing, A.L.Fuhrmann 2


Textur – was ist das?
Textur = Eigenschaft,
separat definiert Textur
 2D Textur: wie Aufdruck
(Tapete) 2D
(x,y,z) (u,v)
 3D Textur: innere
Struktur (Holz)
Textur wird in
Texturraum definiert
3D
Aufbringung per (x,y,z) (u,v,w)
Parametrisierung
2015 Teil 2: Texturing, A.L.Fuhrmann 3
Textur – Abbildungen
Texturraum (u,v)T
Parametrisierung

Objektraum (x,y,z)T
Rendering

Bildraum (x,y)T

2015 Teil 2: Texturing, A.L.Fuhrmann 4


Textur – Beispiel

2015 Teil 2: Texturing, A.L.Fuhrmann 5


Parametrisierung
Meist verschiedene Parametrisierungen
möglich:

oder oder

2015 Teil 2: Texturing, A.L.Fuhrmann 6


Solid Texturing
3D Textur: innere Struktur
Texturing: wie Ausschneiden

+ =

object texture

2015 Teil 2: Texturing, A.L.Fuhrmann 7


Parametrisierung
Komplexere Objekte müssen auch komplexer
parametrisiert werden:

Einfache Projektion Parametrisierung der


einzelnen Teilobjekte
(Henkel)
2015 Teil 2: Texturing, A.L.Fuhrmann 8
Parametrisierung
Texturing a human head:

2015 Teil 2: Texturing, A.L.Fuhrmann 9


Solid Texturing – mehr Beispiele

2015 Teil 2: Texturing, A.L.Fuhrmann 10


Solid Texturing – mehr Beispiele

2015 Teil 2: Texturing, A.L.Fuhrmann 11


Solid Texturing – mehr Beispiele

2015 Teil 2: Texturing, A.L.Fuhrmann 12


Bump Mapping
Bump- oder Normal-Mapping =
 Vortäuschen von geometrischen Details
 siehe “Trompe-l'œil”
 anstatt mehr geometrischem Detail:
Normalvektorvariation durch Textur
 Normalvektoren täuschen andere Richtung der
Oberfläche vor, wirkt wie Unebenheit

T(u,v)
+ =

2015 Teil 2: Texturing, A.L.Fuhrmann 13


Bump Mapping
Color-Mapping Bump-Mapping

2015 Teil 2: Texturing, A.L.Fuhrmann 14


Bump Mapping N N

Bump Mapping = P´

 Vermeidung von viel P


Geometrie P
v

u
D
P P
 Normale verwackeln
Surface

+ =

2015 Teil 2: Texturing, A.L.Fuhrmann 15


Bump Mapping – Beispiel

2015 Teil 2: Texturing, A.L.Fuhrmann 16


Bump Mapping – Beispiel

2015 Teil 2: Texturing, A.L.Fuhrmann 17


Bump Mapping – mehr Beispiele

Problem: Trick sichtbar am Rand!


Problem: Bumps werfen keine Schatten!
2015 Teil 2: Texturing, A.L.Fuhrmann 18
Abhilfe: Horizon Mapping
Schatten von bumps vortäuschen!
v
•Verlauf des Horizonts pro
texel vereinfacht
vorberechnen
•nur 8 Werte pro texel
•Auswertung in
Grafikhardware
u

2015 Teil 2: Texturing, A.L.Fuhrmann 19


Horizon Mapping – Vergleich
ohne mit

2015 Teil 2: Texturing, A.L.Fuhrmann 20


Displacement Mapping
Bump- oder Normal-Mapping täuschen Detail
nur vor  Silhouette bleibt glatt, keine
Schatten
Displacement Mapping ist kein Mapping wie
bisher besprochen, es ändert die Geometrie

T(u,v)
+ =

2015 Teil 2: Texturing, A.L.Fuhrmann 21


Displacement Mapping
Bump- Displacement-Mapping

2015 Teil 2: Texturing, A.L.Fuhrmann 22


Displacement Mapping
Vorteile:
 erzeugt Geometrie aus Texturen (einfaches Modellieren)
 Schatten, Silhouette korrekt
 Geometrie kann adaptiv erzeugt werden
(abhängig von Texture-Map und Betrachtungspunkt)

Nachteile:
 erzeugt VIEL Geometrie
(worst case: >1 Dreieck pro Texel)
 nur Höhenfeld, keine Hinterschneidungen modellierbar

2015 Teil 2: Texturing, A.L.Fuhrmann 23


Environment Mapping
Reflektion wird normalerweise durch
Ray-Tracing erzeugt: für jeden Punkt eines reflektierenden
Objektes wird ein Reflektionsstrahl in die Szene geschossen

Szene

Objekt
Auge

Nachteil: Zeitaufwändig, nicht einfach in Hardware lösbar

2015 Teil 2: Texturing, A.L.Fuhrmann 24


Environment Mapping
Um nicht jeden reflektierten Strahl mit der ganzen Szene
schneiden zu müssen, ersetzen wir die Szene durch ihr Abbild
auf einer Kugel

Objekt texurierte Kugel


Auge (mit vom Mittelpunkt der
Kugel aus erzeugtem Bild
der Szene)

Vorteil: vorberechnet und einfach in Hardware lösbar

2015 Teil 2: Texturing, A.L.Fuhrmann 25


Environment Mapping
Man kann die Kugel auf
verschiedene Weise texturieren,
oder auch durch einen Würfel
(„Cube-Map“) ersetzen

2015 Teil 2: Texturing, A.L.Fuhrmann 26


Environment Mapping – Beispiel

Ray-traced Environment-Mapped

Bei der Environment Map fehlt die Selbst-Reflektion:


Griff und Tülle spiegeln sich nicht
Dies ist jedoch meist akzeptabel

2015 Teil 2: Texturing, A.L.Fuhrmann 27


Environment Mapping
Vorteile:
 schneller
 alle wichtigen Berechnungen können offline (d.h. vor dem eigentlichen
rendering) erfolgen
 meist akzeptable visuelle Qualität
(Auge toleriert auch grobe Fehler in Reflektionen)

Nachteile:
 funktioniert nur für Szenenteile die weit vom Objekt entfernt
(Gegenbeispiel: Teekanne steht auf Tischplatte)
 keine Selbstreflektion konkaver Objekte
 Bei bewegter Umgebung muß die Environment Map neu generiert werden
 funktioniert vollkommen korrekt nur für kugelförmige Objekte ohne
Ausdehnung. Ansonsten  mehr oder weniger akzeptabel verzerrt

2015 Teil 2: Texturing, A.L.Fuhrmann 28


Aliasing-Probleme bei Texturen
Parametrisierung nicht flächentreu!
Dichtere “Meridiane” am Pol als am
Äquator.

texture spa ce ima ge spa ce


v
Unterschiedlich
viele Texel pro pixel
Pixel
u
2015 Teil 2: Texturing, A.L.Fuhrmann 29
Aliasing-Probleme bei Texturen
Aliasing

Wo mehrere Texel auf ein Pixel fallen,


kann nicht mehr ein einzelnes Texel
die Pixelfarbe liefern:

Es muß der Wert aller Texel gemittelt


werden!

Diesen Vorgang nennt man „Filtering“,


oder auch „Anti-Aliasing“.

2015 Teil 2: Texturing, A.L.Fuhrmann 30


Video: Aliasing bei Texturen

2015 Teil 2: Texturing, A.L.Fuhrmann 31


Aliasing mit Texturen – Beispiele
kein filter
(point sampling)

box filter
ideal

2015 Teil 2: Texturing, A.L.Fuhrmann 33


Mip-Mapping
Verschiedene Auflösungen gefiltert vorberechnet
(i.A. 2er Potenzen)

Mip: multum in parvo

Heute in Hardware standardmäßig vorhanden


2015 Teil 2: Texturing, A.L.Fuhrmann 34
Mip Mapping – Beispiel
Je nach Verzerrungsverhältnis,
wird die entsprechende Textur gewählt.
not mip-mapped

mip-mapped

2015 Teil 2: Texturing, A.L.Fuhrmann 35


Mip Mapping – Interpolation
texture ima ge spa ce
2D = max(d1,d2) v
d2
D: Texturebene
d1
Beispiel: D=2.3 pixel

T0 = Texturwert aus Ebene trunc(D)


T1 = Texturwert aus Ebene trunc(D)+1
Ergebniswert: lineare Interpolation

2015 Teil 2: Texturing, A.L.Fuhrmann 36


Mip Mapping – Nachteile
Konservative Auswahl der MipMap-
Stufe führt zu „Blurring“ bei einseitig
gestauchten Texture, z.B. bei flachem
Betrachtungswinkel

2015 Teil 2: Texturing, A.L.Fuhrmann 37


Mip Mapping – Filtering
Anisotrop. F. kann z.B. durch
mehrmaliges Abtasten der Textur auf
der Grafikkarte implementiert werden
Dadurch wird die anisotrope Verzerrung
zur Laufzeit berücksichtigt

2015 Teil 2: Texturing, A.L.Fuhrmann 38


Mip Mapping – Anisotropie
MipMaps werden i.A. isotrop gefiltert,
d.h. der Filter ist in u und v gleich groß
Bei starker asymmetrischer Verzerrung
(=Anisotropie) in der Projektion wird
die Textur in eine Richtung zu stark
gefiltert und erscheint verschwommen
Abhilfe durch anisotrope Filter

2015 Teil 2: Texturing, A.L.Fuhrmann 40


Anisotropes Filtering
Vergleich:

off 16 samples

2014 Teil 2: Texturing, A.L.Fuhrmann 41

Das könnte Ihnen auch gefallen