Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien ›...

44
1 Prof. Dr.-Ing. Detlef Krömker *UDSKLVFKH 'DWHQYHUDUEHLWXQJ Texturen SS 2000 2 GDV 9. Texturen © Prof. Dr.-Ing. Detlef Krömker hEHUVLFKW 1. Einführung 2. Diskrete und prozedurale Texturen 3. Generalisierte Textur-Pipeline 4. Texturmapping Ebene Polygone Zweischrittverfahren 5. Corresponder-Verfahren 6. Texturabtastung Aliasing Mipmap, SAT, FPA

Transcript of Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien ›...

Page 1: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

1

Prof. Dr.-Ing. Detlef Krömker

*RHWKH�8QLYHUVLWlW��)UDQNIXUW

*UDSKLVFKH�'DWHQYHUDUEHLWXQJ

������������ �������� �

Texturen

SS 20002GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

��������

1. Einführung2. Diskrete und prozedurale Texturen3. Generalisierte Textur-Pipeline4. Texturmapping

� Ebene Polygone � Zweischrittverfahren

5. Corresponder-Verfahren6. Texturabtastung

� Aliasing� Mipmap, SAT, FPA

Page 2: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

2

SS 20003GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

����������������� ��

7. Beeinflussung der Beleuchtungsrechnung8. Environment-Mapping9. Bump Mapping10.Zusammenfassung 11.Glossar12.Weitere Informationen13.Ausblick – Nächste Schritte

SS 20004GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

�������� �

Page 3: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

3

SS 20005GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

In der Realität finden wir ein großes Spektrum geometrischer Feinstrukturen• Maserungen und Muster von Holz, Marmorplatten, Tapeten

• Wolken, Rauch,

• Strukturen unebenen Oberflächen z.B. Rauhputzwänden, rauhes Leder, Apfelsinen oder Baumstämmen

• im Hintergrund sichtbare Häuser, Maschinen, Pflanzen und Personen

Die geometrische Form dieser Objekte durch Flächen exakt nachzubilden, ist um Größenordnungen zu aufwendig

������������������ ���������������������������� �������������

�����

SS 20006GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

����� Texturen bieten Möglichkeiten,das visuelle Erscheinungsbild von Objekten detailreicher zu gestalten.

Die Oberfläche einer Wand kann durch eine einzige planare Fläche modelliert werden. Das „Tapezieren“ kann als Aufbringen eines Bildes auf die Wandober-fläche interpretiert werden.

Diesen Vorgang bezeichnet man als Texturierung.

Page 4: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

4

SS 20007GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

������������ � Erste einfache Definition:Zweidimensionale Texturen oder kurz 2D-Texturen sind Funktionen, die Punkte der (u,v)-Ebene auf (r,g,b)-Farben abbilden:

Das Mapping (engl.: Abbildung) beschreibt, wie eine 2D-Textur bzw. ein Ausschnitt aus einer 2D-Textur auf eine Fläche aufgebracht wird. Beim Rendering muß jedoch das inverse Mapping-Problem gelöst werden, d.h. den bekannten ��������Koordinaten des Flächenpunktes P müssen ������Koordinaten zugeordnet werden:

),(),,( �� ��WH[

�=

),,()(),( ���!"!�� ��#�����#��� ==

SS 20008GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

������������ �

Page 5: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

5

SS 20009GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

������������ �

Die Texturierung einer Fläche mit einer 2D-Textur läßt sich dann mathematisch durch die Hintereinanderausführung dieser beiden Abbildungen beschreiben:

Dreidimensionale Texturen oder kurz 3D-Texturen sind Funktionen, die Punkte eines �����$��Raumes auf ����� ��Farben abbilden:

)),,((),,( ���!% �� LQYPDSWH[=

),,(),,( $��% ��WH[

=

SS 200010GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

������������ �

Sie werden auch als Festkörpertexturen bezeichnet. Häufig genannte Beispiele hierfür sind Holz- und Marmortexturen. Beim inversenMapping

müssen den ��������Flächenpunkten �����$�-Koordinaten zugeordnet werden. Man kann dieTexturierung mit 3D-Texturen auch so interpretieren, daß die Körper quasi aus dem (u,v,w)-Texturkörper herausgeschnitzt werden.

),,(),,( $��% ��WH[

=

Page 6: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

6

SS 200011GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

������� ���������� �����

Wir unterscheiden zwischen �������� und ����� ���� TexturenN-dimensionale �������� Texturen als (N+1) dimensionale Zahlenfelder gespeichert. Ein �&'(��dimensionales Zahlenfeld entspricht dabei einem &-dimensionalen Vektorfeld. Diskrete farbige )*-Texturen der Breite n und Höhe m lassen sich so z.B. durch

beschreiben, wobei %���+� ein Vektor mit drei Farbkomponenten ist und als Texel (TEXtur ELement) bezeichnet wird.

�+��+� ≤≤≤≤ 00),(�

SS 200012GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

������������������

+ das Generieren komplexer 2D-Texturen für die photorealistische Visualisierung vergleichsweise schnell und einfach.

Page 7: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

7

SS 200013GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

������������������ (Diskussion anhand von 2D-Texturen)

– Texturen mit hoher Auflösung (n,m) haben einen hohen Speicherbedarf. – Beim Vergrößern von Bildern treten Artefakte auf (Pixeleffekt)– Fortsetzung (Aneinandersetzen, Vergrößern) von Texturen ist oftproblematisch– Der in den Bildern dargestellte Kontext (Sonnenstand, Schattenwurf, ...) stimmt häufig nicht mit der geplanten Szene überein. Die Suche nach geeigneten Vorlagen kann dann sehr aufwendig sein. – Beim Mapping auf beliebige Fläche treten Verzerrungen und infolgedessen Abtast-Probleme auf.

SS 200014GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

������������������

Resampling-Methoden:1. nächstgelegener Nachbar

������������ ����, : u<1,v<1

1 , : u=1,v<1( , )

, 1 : u<1,v=1

1 , 1 : u=1,v=1

WH[

� �� ��

� � ��� � �

� �� �

� � �

− = −

− −

� 1� +

��

��

Page 8: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

8

SS 200015GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

������������������

2. Bilineare Interpolation

0

1

1 0

ˆ

ˆ

ˆ ˆ( , ) * 1, (1 )* ,

ˆ ˆ( , ) * 1, 1 (1 )* , 1

ˆ ˆ( , ) * ( , ) (1 )* ( , )WH[

� �� ��

� �� ��

� � � � � �� �� � � �� ��

� � � � � �� �� � � �� ��

� � � � � � � � � � �

= − = −

= + + − = + + + − + = + −

��

��

��

1�� +

��

1�� +

3. Aufwendiger Filtern (später)

SS 200016GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

��������� �����

Prozedurale Texturen werten bei jedem Aufruf von Ctex( u, v) bzw. Ctex( u, v, w) eine mathematische Formel bzw. einen (fraktalen) Algorithmus aus. Dies hat folgende ��������:

+ Der Speicheraufwand ist minimal. + Die Texturwerte können an jeder Stelle ( u, v) bzw. (u, v, w) mit optimaler Genauigkeit berechnet werden. + Die Texturen sind im gesamten Raum definiert.

- Der entscheidende �������prozeduraler Texturen ist, daß selbst Experten Probleme haben, komplexe Texturen, die sie bildlich vor Augen haben, durch mathematische Formeln zu beschreiben. (Hilfreich sind auf jeden Fall gute Grundkenntnisse der Fourier-Synthese und der fraktalen Geometrie).

Page 9: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

9

SS 200017GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

� ������������� ����� �!�����"��

1. Aus 2D-Bildschirmkoordinaten in den 3D-Objektraum „zurückprojezieren“

2. Anwenden der Projektorfunktion: ����Planar, Kugel, Zylinder, Quader (box), bei parametrischen Flächen ggf. nicht nötigBei Realtime-Renderer i.d.R. schon beim Modelling ausgeführt und (u,v)-Werte , in den Vertices gespeichert und dann interpoliert. (Aber z.B. OpenGL stellt einige Projektionsmethoden zur Verfügung).

BerechneObjektraum-koordinaten

Projektor-funktion����

Correspon-der-Funktion

TexturwertTransfor-mation

ModifiziereBeleuchtungs-

gleichung

(x,y) (u,v)(x,y,z) (s,t) (r,g,b) ...

SS 200018GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

� ������������� ����� �!�����"��

3. Corresponder- Funktion: Transformation vom Parameterraum zum Texturraum (-ebene) (Texturkoordinaten):

� Weitere Matrix-Transformation (OpenGL): translieren, rotieren, skalieren,...

� Fortsetzungsmodi: wrap (repeat, tile), mirror, clamp, border

4. Abtasten des Texturwertes und Wertanpassung5. Modifiziere Beleuchtungsrechnung: Replace, Modulate

(Multiplikation) den (r,g.b)-Wert oder irgend einen anderen Parameter der Beleuchtungsgleichung (siehe unten)

BerechneObjektraum-koordinaten

Projektor-funktion

Correspon-der-Funktion

Texturwert-Abtastung &Anpassung

ModifiziereBeleuchtungs-

gleichung

(x,y) (u,v)(x,y,z) (s,t) (r,g,b) ...

Page 10: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

10

SS 200019GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

#���� �

� In der Regel sind jedem Eckpunkt eines polygonalen Modells Texturkoordinaten (u,v) beim Modelling zugeordnet – also zum Zeitpunkt des Rendering bekannt

� Rückprojektion und Mapping werden in der Regel zusammengefaßt

� Gesucht ist eine Operation, die bilinear interpolierte (x,y)-Koordinaten auf (u,v) abbildet

BerechneObjektraum-koordinaten

Projektor-funktion����

Correspon-der-Funktion

TexturwertTransfor-mation

ModifiziereBeleuchtungs-

gleichung

(x,y) (u,v)(x,y,z) (s,t) (r,g,b) ...

SS 200020GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

������� $����% ���������

Wird die Texturierung in den Prozess der Rasterung integriert, so ist zu beachten, daß die Textur perspektivisch korrekt verzerrt wird. Einfache Interpolation der Texturwerte aus den Texturwerten an den Eckpunkten führt zu Artefakten.

Page 11: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

11

SS 200021GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

% ����#���� �

In homogenen Koordinaten kann das Inverse Mappingausgedrückt werden durch:

=

==

=

Z

\

[

,+*

)('

&%$

T

Y

X

,QYHUVHGHVVHQE]Z

T

Y

T

XYXXQG

Z

\

Z

[\[PLW

T

Y

X

LKJ

IHG

FED

Z

\

[

.

)’

,’

(),()’

,’

(),(’

Wenn die Transformation der Eckpunkte eines Vierecks bekannt sind, kann diese Matrix bestimmt werden.

SS 200022GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

% ����#���� ���������� ��% ���������

In der Praxis:� Texturkoordinaten so wie z-Wert oder Beleuch-

tungsparameter im Scanline-Modus interpolieren� Aufgrund der perspektivischen Verzerrung kann

dieses für (u,v) nicht linear erfolgen, sondern für

�,

,�

�,�

���,��

1,

’,

),’,’(

===

Page 12: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

12

SS 200023GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

�������� � �������&�'�����$�(��

Bisher wurde Textur-Mapping für ein einzelnes Polygon beschrieben. Dabei wurde vorausgesetzt, dass die ��

L��

LParameter der Polygoneckpunkte ��

L��

L�

L

explizit bekannt sind. Besteht ein Objekt aus sehr wenigen Dreiecken, dann kann ein Anwender diese Zuordnung der ��

L��

LParameter unter Umständen

noch interaktiv am Bildschirm vornehmen. Bei komplexeren Objekten ist dies jedoch unmöglich.

Bier und Sloan (86´) haben ein ����������������� vorgestellt, das die ����Berechnung vollständig automatisiert. Die Grundidee besteht darin, ein komplexes Objekt, das aus beliebig vielen primitiven Teilobjekten bestehen darf, mit einer einfach parametrisierbaren, virtuellen Fläche zu umhüllen. Die 2D-Textur wird dann zunächst einmal auf diese umhüllende Fläche abgebildet, und erst von dort aus auf die Objektoberfläche. Geeignete umhüllende Flächen sind Zylinder-, Kugel- und Quaderoberflächen.

SS 200024GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

)*�� �� #���� �

Beim Zylinder-Mapping wird das Objekt von einem endlichen Zylinder umhüllt. Die Berechnungen sind besonders einfach, wenn die Zylinder-hauptachse parallel zur z-Achse des Objektraumkoordinatensystems verläuft. Die Endpunkte der Achse sind dann durch die Koordinaten min( , , ),

F\O F\O F\O� �

gegeben.

Die Zylinderoberfläche läßt sich leicht durch einen Rotationswinkel φund die Höhe � parametrisieren. Punkte ����� im Innern des Zylinders

max( , , )F\O F\O F\O� �

werden dann senkrecht von der Zylinderachse aus auf die Zylinderoberfläche projiziert, und deren �φ ��Parameter werden, nach entsprechender Normierung, als ����-Parameter interpretiert.

Note: in Gleichungen ycyl...

Page 13: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

13

SS 200025GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

+��� #���� �

arctan 2( , )

2V V

� � � ��

ππ

+ − −=

Kugeloberflächen können leicht durch Kugelkoordinaten und parametrisiert werden. Hat eine umhüllende Kugel den Mittelpunkt ��

V��

V�

V�

dann werden Punkte ����� im Kugelinnern vom Mittelpunkt aus auf die Kugeloberfläche projiziert. Dadurch werden ihnen die Parameter � und �zugeordnet:

( )2 2arctan 2 ( ) ( ) ,V V V

� � � � �

π

− + − −=

φ

θ

θφ

��

SS 200026GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

!�� #���� �

,max ,min ,max ,min ,max ,min( ) ( ) ( )ER[ ER[ ER[ ER[ ER[ ER[� � � � − ≥ − ≥ −

Beim Box-Mapping beschreibt die umhüllende Fläche einen Quader. In der Regel wählt man hierfür die achsenparallele Bounding Box des Objekts. Eine mögliche Parametrisierung von Punkten ����� im Innern der Bounding Box definiert einfach die längste Kante der Bounding Box als u-Achse und die zweitlängste Kante als v-Achse. Gilt also z.B.

,min

,max ,min

ER[

ER[ ER[

� ��

� �

−=

dann kann man die Texturparameter einfach durch

und ,min

,max ,min

ER[

ER[ ER[

� ��

� �

−=

berechnen.

��

Page 14: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

14

SS 200027GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

,������ ���� ����

Corresponder- Funktion: Transformation vom Parameterraum zum Texturraum (-ebene) (Texturkoordinaten):

� Weitere Matrix-Transformation (OpenGL): translieren, rotieren, skalieren,...

� Nicht immer realisiert

� Fortsetzungsmodi: wrap (repeat, tile), mirror, clamp, border

BerechneObjektraum-koordinaten

Projektor-funktion����

Correspon-der-Funktion

TexturwertTransfor-mation

ModifiziereBeleuchtungs-

gleichung

(x,y) (u,v)(x,y,z) (s,t) (r,g,b) ...

SS 200028GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

�������� ������

wrap mirror clamp border

Page 15: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

15

SS 200029GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

�����-�� .������ �

� Resampling des Texturwertes und ggf. Wertanpassung

BerechneObjektraum-koordinaten

Projektor-funktion����

Correspon-der-Funktion

TexturwertTransfor-mation

ModifiziereBeleuchtungs-

gleichung

(x,y) (u,v)(x,y,z) (s,t) (r,g,b) ...

SS 200030GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

.������ ��������"� �����

Entspricht einem Resampling eines Digitalen Bildes

Einfache Funktionen wie• nearest neightbour• bilinbeare Interpolationerzeugen gravierende Aliasing-Effekte

Page 16: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

16

SS 200031GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

������ ��������"� �����

1 2( , ) , ( , )W W� � � �

� �� � � �∂ ∂ ∂ ∂= =∂ ∂ ∂ ∂

Die Projektion eines quadratischen Bildschirmpixels (Kantenlänge 1) auf die Texturebene, wird Footprint genannt (= beliebiges Viereck) und wird näherungsweise als ein Parallelogramm angenommen, das von den Vektoren

aufgespannt wird. Bei den Echtzeitverfahren wird dieser Footprint nun durch einfachere Flächen ersetzt, für die die Summe oder der Mittelwert der dazugehörenden Texturwerte im voraus berechnet werden kann.

SS 200032GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

!������#� �$������ �

Abbildung einer Reihe Pixel auf eine Schachbrett-Textur

Page 17: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

17

SS 200033GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

��������������� ���/ ���(�$�#�� �$������ �

Ausgangstextur: 32 x 64 Texels

Nearest bilineareNeighbour Interpolation

SS 200034GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

#�� #���� �

Das wichtigste und bekannteste Verfahren für Echtzeitanwendungen ist das Mip-Mapping-Verfahren. Eine Mip-Map �

PLS����� speichert eine quadratische

Textur ������ der Größe �×�, wobei �����N eine Zweierpotenz sein muß, in fortlaufend halbierten Auflösungsstufen.

Page 18: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

18

SS 200035GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

#�� #���� �

Auf der Stufe ��� werden die Texturwerte direkt übernommen.0 k[ , ] [ , ], 0 i,j<2 .PLS

� � � � � �= ≤

( )1 1 1 1

-

1[ , ] [2 ,2 ] [2 1, 2 ] [2 , 2 1] [2 1,2 1]

4 1 -1 und 0 , 2 .

G G G G G

PLS PLS PLS PLS PLS

N G

� � � � � � � � � � � � � � �

� � � �

− − − −= + + + + + + +

≤ < ≤ <

Die übrigen Stufen d entstehen durch Filterung der jeweils vorhergehenden Stufe.

Auf der Stufe ��der Texturhierarchie werden also ��G Texel der Originaltextur als ein einziges Texel dargestellt.

SS 200036GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

#�� #���� �

Nach dieser nur ein einziges Mal zu berechnenden Vorfilterung können beliebige Flächenelemente folgendermaßen texturiert werden:die Texturkoordinaten (u,v) des Pixelmittelpunkts und die Ableitungen nach den Bildschirmkoordinaten

, , ,� � � �� � � �∂ ∂ ∂ ∂∂ ∂ ∂ ∂

22� �

�� �

∂ ∂ = + ∂ ∂

gegeben. Dann hat die Projektion des quadratischen Pixels auf die Texturebene, also der Footprint, die Kantenlängen

22

.� �

�� �

∂ ∂ = + ∂ ∂ X

[

∂∂

X

\

∂∂

Page 19: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

19

SS 200037GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

#�� #���� �

Als Seitenlänge des quadratischen Footprints wählt man oft ���������. Das Maximum und nicht etwa der Mittelwert wird deshalb gewählt, weil die entstehende zusätzliche Verschmierung des Ergebnisbildes durch zu große Footprints eher in Kauf genommen werden kann als Aliasing durch zu kleine Footprints. Unter diesen Voraussetzungen kann der Gesamttexturwert auf derStufe d= log2(l) gemäß

( , , ) ( , , )G

WH[ PLS� � � � �������� � � �=

berechnet werden. Dies geht natürlich nur, wenn d ein ganzzahliger Wert ist. Ist dies nicht der Fall, dann muß d entweder zum nächstgelegenen ganzzahligen Wert gerundet werden, oder aber man führt eine lineare Interpolation zwischen den beiden benachbarten Stufen � und � ! durch. Als Ergebnis der sog. trilinearen Interpolation erhalten wir dann:

1( , , ) ( )* ( , , ) ( 1 )* ( , , ).G G

WH[ PLS PLS� � � � � � �������� � � � � � �������� � � �+ = − + + −

SS 200038GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

0����.��������0.��

Die Richtungsabhängigkeit der Projektion (Anisotropie) des Footprints kann durch das Mip-Mapping gar nicht berücksichtigt werden. SAT erlauben anstatt der Approximation durch Quadrate (u,v)-achsenparallele Rechtecke zu verwenden und somit diesem Defizit etwas Rechnung zu tragen.

X

[

∂∂

X

\

∂∂

�Quadratische Approximation des Footprints beim MipMap-Verfahren

Page 20: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

20

SS 200039GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

0����.��������0.��

Der Berechnungsaufwand der einfachsten Methode, das arithmetische Mittel über alle Texturwerte eines ����achsenparallele Rechtecks ���

�������

���� zu

berechnen, ist proportional zur Größe des Rechtecks:

1 1

0 0

0 0 1 11 0 1 0

[ , ]( , , , )

( 1)( 1)

L M

L L M M

DYJ

� � �� � � � �

� � � �= ==

− + − +∑ ∑

Berechnet man dagegen in einem Vorverarbeitungsschritt eine sogenannte Summed-Area-Tabelle

0 0( , ) [ , ]V V

L M

VDW V V L L M M� � � � � �

= ==∑ ∑

und setzt

[ , 1] [ 1, ] 0,VDW VDW� � � �− = − =

SS 200040GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

0����.��������0.��

Dann kann �DYJ

alternativ mit konstantem Berechnungsaufwand, unabhängig von der Rechteckgröße berechnet werden:

1 1

0 0

0 0 1 11 0 1 0

[ , ]( , , , )

( 1)( 1)

L M

L L M M

DYJ

� � �� � � � �

� � � �= ==

− + − +∑ ∑

1 1 0 1 1 0 0 00 0 1 1

1 0 1 0

[ , ] [ 1, ] [ , 1] [ 1, 1]( , , , ) .

( 1)( 1)VDW VDW VDW VDW

DYJ

� � � � � � � � � � � �� � � � �

� � � �− − − − + − −=

− + − +

Page 21: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

21

SS 200041GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

������� � .�����*���.�

Die wesentliche Idee des FPA-Verfahrens besteht darin, die leicht und schnell zu erzeugenden Mip-Maps so einzusetzen, daß der näherungsweise als Parallelogramm angenommene Footprint möglichst genau abgedeckt wird. Auf diese Weise wird ein hoher Rechenaufwand vermieden und trotzdem eine anisotrope Texturfilterung erreicht. Das Problem besteht nun darin, den Footprint durch " quadratische Texturfelder (Mip-Map-Zugriffe) möglichst genau und mit geringem Rechenaufwand zu approximieren.

1 1 0 1 1 0 0 00 0 1 1

1 0 1 0

[ , ] [ 1, ] [ , 1] [ 1, 1]( , , , ) .

( 1)( 1)VDW VDW VDW VDW

DYJ

� � � � � � � � � � � �� � � � �

� � � �− − − − + − −=

− + − +

SS 200042GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

������� � .�����*���.�

.Aus praktischen Gründen wird dabei "����P gewählt, da auf diese Weise die endgültige Texturfarbe durch Aufsummieren und einfache Division durch eine Zweierpotenz (Shift) ermittelt werden kann. Für " kann eine Obergrenze angegeben werden, um die Rechenzeit ohne merkliche Qualitätseinbußen wesentlich zu verkürzen.

Page 22: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

22

SS 200043GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

������� � .�����* ���.�Für die Berechnung der Mip-Map-Stufe werden die Vektoren

1 2( , ) , ( , )W W� � � �

� �� � � �∂ ∂ ∂ ∂= =∂ ∂ ∂ ∂

verwendet, die auch beim normalen Mip-Mapping zur Bestimmung der Stufe herangezogen werden. Dabei sind u,v die Texturkoordinaten und x,y die Bildschirmkoordinaten des Pixels. Ausgehend vom in die Texturebene projizierten Pixelmittelpunkt (u,v) erfolgen die Mip-Map-Zugriffe in Schritten entlang einer Geraden. Dabei wird der betragsmäßig größere der beiden Vektoren �

�bzw. �

�als

Schrittrichtung ����X��Yt verwendet.

Die Mip-Map-Stufe � ist dann durch die Kantenlänge 1 2min( , )� � �=

als 2log ( )� �=

gerundet auf die nächstliegende Zweierpotenz, gegeben.

und die Anzahl der Mip-Map-Zugriffe durch

1 2max( , ),

� �"

�=

SS 200044GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

������� � .�����* ���.�Mit Hilfe des Schrittvektors ∆r=(∆u, ∆v) der sich aus der Schrittrichtung durch

und X Y� �

� �" "

∆ = ∆ =

berechnet, können nun die Koordinaten ��Q��

Q für die einzelnen Zugriffe

bestimmt werden: ( , ) ( , ) ( , ), wobei 1, 3, 5,..., ( 1).

2Q Q

�� � � � � � � "= + ∆ ∆ = ± ± ± −

Die Farbe des Pixels ergibt sich dann als arithmetischer Mittelwert aller Zugriffe.

Page 23: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

23

SS 200045GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

#���$����!������ ����� � �

� Potentiell ist jeder Parameter der Beleuchtungsrechnung beeinflußbar

BerechneObjektraum-koordinaten

Projektor-funktion����

Correspon-der-Funktion

TexturwertTransfor-mation

ModifiziereBeleuchtungs-

gleichung

(x,y) (u,v)(x,y,z) (s,t) (r,g,b) ...

SS 200046GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

!� $����� ���!������ ����� � �

Basis für die folgenden Betrachtungen : Erweiterte Blinn-Phong-Modell durchgeführt wird:

( )( )

VSHFVSHF

P

VSHF

GLIIGLIIGLII

DPEDPEDPE

N

N

VSHF

N

GLII

NN

DPE

N

VSRWHPLDPEJOREWRW

VKL

�-

����

����

���

�������

⊗⋅⋅=

⊗⋅=⊗=

++++⊗= ∑

)0,max(

)0,max(

)((

� ��

Page 24: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

24

SS 200047GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

!� $����� ���!������ ����� � �

�� ������������������� ���������������������������Eine der am häufigsten angewandten Techniken führt die Beleuchtungsrechnung und das Shading mit konstanten Beleuchtungsparametern durch und skaliert den Beleuchtungswert �tot erst im nachhinein komponentenweise mit dem Texturwert �tex

��!�����������"�#���$������ ����%�&� ���������Bei dieser einfachsten Art der Texturierung wird die Objektfarbe durch die Farbe der Textur ersetzt. Jegliche Beleuchtung des Objekts wird entfernt, außer die Textur selbst enthält Beleuchtungseffekte.

WH[RXW�� =

WH[WRWRXW��� ⊗=

wenn als Objektfarbe weiß gewählt wird, enthält diese die Schattierungsinformation und die Textur die Farbinformation des Objektes

SS 200048GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

!� $����� ���!������ ����� � �

'����� ������������(���$����

Die Flächenfarbe wird im wesentlichen durch den Materialparameter mdiff, im geringeren Maße aber auch durch den Parameter mamb

bestimmt. Also

zu setzen.

Der wesentliche Unterschied zu 2. besteht darin, dass die spekularenReflektionen und Emissionen von der Textur unbeeinflußt bleiben.

WH[DPEDPE

WH[GLIIGLII

���

���

⊗=⊗=’

Page 25: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

25

SS 200049GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

!� $����� ���!������ ����� � �

)����� ������������� ���� *�$������

Die Highlights können dadurch unregelmäßig gestaltet werden. Interessant ist diese Methode vor allem im Zusammenhang mit dem *�$������+���� und !�������+���� (später)

���#�-#�- ��� ⊗=

SS 200050GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

!� $����� ���!������ ����� � �

,����� ����������%�������Durch die Modulation des Transparenzparameters

*#�� �$�α α α=können sehr realistisch aussehende Effekte erzielt werden:α.( � Objekte hinter diesem Flächenpixel sind vollständig sichtbarα./ � so wird kein Licht durchgelassenansonsten wird mit dem Wert von α gefiltert.

Bei Beschränkung auf die Werte 0 und 1 kann durch die Textur zwischen Sichtbarkeit und Unsichtbarkeit des Objekts ''umgeschaltet'' werden. Dadurch können auch kompliziert geformte Flächen aus einfachen Flächen ''ausgeschnitten'' werden.

Mit stochastischen Werten für α können z.B. verschmutzte und milchige Glasscheiben modelliert werden.

Page 26: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

26

SS 200051GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

!� $����� ���!������ ����� � �

-��.��� ������ ����/�������������Beim 0 ������ wird mit Hilfe einer skalarwertigen Textur eine Offsetfläche "0���� definiert. Die Normalenvektoren der Offsetfläche werden dann als Variationen der Normalenvektoren der Basisflächeinterpretiert (siehe später)

~ ( ( )).� �$� �����% �� � & ��

1����� ���������2����3 ������������Eine weitere Möglichkeit besteht darin, Lichtquellenparameter durch Texturen zu beeinflussen. Besonders anschaulich ist dies bei Projektorlichtquellen. Dabei wird eine zweidimensionale Textur in den Raum projiziert, d.h. die Lichtemission wird in Abhängigkeit von der Lichtrichtung moduliert:

SS 200052GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

!� $����� ���!������ ����� � �

4��56��$������ ��"$$���$�(���Hierbei wird mit Hilfe von Texturen die tatsächliche Geometrie von Oberflächen verändert. Darauf beruht das sogenannte 7���������+����.

8��9�������������

Page 27: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

27

SS 200053GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

�������� �� �������� % ���������

Bei Gouraud-interpolierten Dreiecken kann nur die Beleuchtungsrechnung 2. ������������������� ���������������������������angewendet werden.

Die Möglichkeit der alternativen oder auch kombinierten Anwendung der Texturierungen 3. bis 8. besteht nur bei Visualisierungsverfahren, die entweder eine explizite Beleuchtungsrechnung in jedem Flächenpunkt durchführen oder die verschiedenen Anteile der Phong Beleuchtungsgleichung getrennt durch Gouraud-Interpolation berechnen.

SS 200054GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

1 ���� � �#���� ��2$����� #���� ��

eine einfache Möglichkeit, Reflektionen (zumindest approximativ) mit Hilfe von Textur-Hardware zu berechnen. :� �����;Ist ein Objekt verglichen mit dem Abstand zu umgebenden Objektenklein, so hängt die einfallende Beleuchtsstärke nur von der Richtung, nicht von der Position eines Punktes auf dem Objekt ab. Daher kann die einfallende Beleuchtung für ein Objekt vorberechnet und in einer 2D-Textur, der Environment Map gespeichert werden.

Page 28: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

28

SS 200055GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

1 ���� � �#���� �

Anschaulich wird das reflektierende Objekt von einer virtuellen Kugel (oder auch virtueller Würfel) umgeben, auf deren Innenseite die Szenenumgebung als zweidimensionale Textur, die Environment Map) aufgetragen ist. Einem Punkt P auf der Objektoberfläche werden dann Texturkoordinaten (u,v) zugeordnet. Die Richtung R und damit die Texturkoordinaten (u,v) können einfach aus der Richtung V zur Kamera und der Normale N in Punkt P berechnet werden:

''�

"

()

( , )� �

�</�/<* 2−=

<

SS 200056GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

1 ���� � �#���� �

Für die Beleuchtungsrechnung wird ein erweitertes Phong-Beleuchtungsmodell, das auch Reflektionen berücksichtigt angewendet:

Vorteile des Environment Mapping+ schnell und einfach zu berechnen + liefert gute Visualisierungsergebnisse, wenn die Textur z.B. den Himmel oder einen weit entfernten Horizont repräsentiert. + kann verwendet werden, um große ausgedehnte Lichtquellen als Textur darzustellen.

)()(( φθUHIOPDS

N

N

VSHF

N

GLII

NN

DPE

N

VSRWHPLDPEJOREWRW��- �������� +++++⊗= ∑

Page 29: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

29

SS 200057GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

1 ���� � �#���� �

Nachteile- Wie wird die Environment Map generiert und parametrisiert?- Die Reflektionsberechnung ist nur dann korrekt, wenn der Objektpunkt P sich im Weltmittelpunkt W befindet. Mit zunehmendem Abstand zwischen P und W treten verstärkt Verzerrungen auf.

SS 200058GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

1 ���� � �#���� �

Ist die Environment Map schlecht parametrisiert, können erhebliche Aliasing-Probleme auftreten. - Es wird keine Verdeckungsrechnung durchgeführt. Das Problem, daß der reflektierte Strahl R auf ein blockierendes Szenenobjekt treffen kann, wird ignoriert. - Szenenobjekte können sich nicht gegenseitig widerspiegeln. Bei der Reflektionsberechnung wird nur die a priori berechnete Environment Mapberücksichtigt.

Page 30: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

30

SS 200059GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

������������ ��� 1 ���� � �#���

Ist der Reflektierte Strahl '��'[�'

\�'

] gegeben, so berechnen sich (φ,θ)

analog wie beim Kugel-Mapping gemäß

Blinn, Newell 1976 verwenden Kugelkoordinaten zur Parametrisierung der Environment Map. Diese werden dann als Texturkoordinaten auf dem Objekt verwendet.

arccos( )

arccos( / sin ), falls 0

2 arccos( / sin ), sonst

]

[ \

[

'

' '

'

θθ

φπ θ

=≥

= −φ

θ

��

SS 200060GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

������������ ��� !�� � �3-��

+ Einfach verständlich, älteste Parametrisierung.Die Erzeugung der Environment Map ist kompliziert. In der Praxis wird

meist eine Environment Map, die auf den Innenseiten eines Würfels aufgebracht ist, entsprechend umgerechnet.- Die Parametrisierung mittels Kugelkoordinaten ist schlecht. Um die Pole liegen wesentlich mehr Texel/Fläche als am Äquator. Das führt zu einer schlechten Abtastung.- Wird gegenwärtig nicht von Hardware unterstützt.- Ein Dreieck, das den Pol enthält, enthält den Pol nicht mehr, wenn linear in Polar-koordinaten interpoliert wird.- Schneidet ein Dreieck die Linie mit φ=0, so schneidet ein linear interpoliertes Dreieck diese nicht mehr.

Page 31: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

31

SS 200061GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

������������ ��� ��

Greene 1986 verwendet anstatt der Projektion der Umgebung auf eine Kugel eine Projektion auf einen Würfel. Die Environment Map besteht aus 6 ebenen Texturen entsprechend den 6 Würfelseiten. Zur Erzeugung wird eine Kamerain der Mitte des Würfels platziert und 6 Aufnahmen in jede Richtung gemacht. In der Praxis wird die Szene ausgehend vom Mittelpunkt des Objekts 6 mal mit unterschiedlichen Blickrichtungen gerendert. Je nach Richtung des reflektierten Strahls wird eine der 6 Texturen ausgewählt.

+ Die Parametrisierung ist regelmäßiger eine Kugelkoordinatenparametrisierung.+ Die Environment Map kann einfach mit Hilfe von Hardware erzeugt werden.

SS 200062GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

������������ ��� 1 ���� � �#���

Die Projektion auf einen Würfel hat auch Nachteile:

-Liegen die Texturkoordinaten von Eckpunkten von Dreiecken des Objekts in unterschiedlichen Würfelseiten, so ist es schwierig dazwischen zu interpolieren. Eine Methode ist, diese Dreiecke entsprechen zu unterteilen.- Filterung und bilineare Interpolation entlang Würfelkanten ist schwierig.-Noch nicht in Hardware implementiert.

Page 32: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

32

SS 200063GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

������������ ��� 1 ���� � �#���

Die Environment Map ist abhängig vom Objektmittelpunkt!

SS 200064GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

1 ���� � �#���� �

Anschaulich wird das reflektierende Objekt von einer virtuellen Kugelumgeben, auf deren Innenseite die Szenenumgebung als zweidimensionale Textur, die Environment Map) aufgetragen ist. Einem Punkt P auf der Objektoberfläche werden dann Texturkoordinaten (u,v) zugeordnet. Die Richtung R und damit die Texturkoordinaten (u,v) können einfach aus der Richtung V zur Kamera und der Normale N in Punkt P berechnet werden:beim Reflektion Mapping (Blinn, Newell 1976) z.B. die Kugelkoordinaten (φ,θ), 2( )' * * " "= − �

Page 33: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

33

SS 200065GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

0���#���� �

OpenGL unterstützt Environment Mapping mit der sogenannten Sphere Map. Dabei wird die gesamte umhüllende Kugel des Objekts, auf deren Innenseite wie beim Standard Environment Mapping die Textur der Umgebung aufgebracht ist, auf einen Kreis abgebildet:

5

19

9

5

Bild,Textur

SS 200066GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

0���#���� �

RückseiteVorderseite

Linke SeiteRechte Seite

ObenUnten

Abbildung von 6 Würfelseiten auf eine Sphere Map

Page 34: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

34

SS 200067GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

!��� � �� �0���#��

SS 200068GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

0���#���� �

Berechnung von Texturkoordinaten in einem Punkt ( des Objekts:Sei ' ���'

[�'

\�'

]W die Richtung des reflektierten Strahls (sie ist abhängig von

der aktuellen Beobachtungsrichtung!). Dann berechnen sich die Texturkoordinaten ����W wie folgt.

2( )' * " " *= −�Für den reflektierten Strahl gilt:

mit "��"[�"

\�"

]W=�����"

]W�

und *������!+�Daraus folgt5

19

Y

X

( , )X Y2

0 0 2

2 0 0 2

1 1 2 1

[ ]

\ ]

] ] ] ]

5 X X 1 X

5 Y Y 1 Y

5 1 1 1

= ⋅ − =

Auflösen nach � und � liefert

, 2( 1) 2( 1)

\[

] ]

''� �

' '= =

+ +

(

Page 35: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

35

SS 200069GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

���43������

-Interpolation der Texturkoordinaten führt zu Artefakten.- Unregelmäßige Abtastung: Maximale Abtastraten in Richtungen entgegender Beobachtungsrichtung, Abtastrate in Richtung der Beobachtungsrichtung geht gegen 0. In Beobachtungsrichtung hat die Parametrisierung eine Singulartität.- Aliasing Probleme vor allem am Rand.

Relativ gute Abtastung. Beabsichtigte Interpolation Tatsächliche Interpolation mit Hardware, WrappingEffekt

SS 200070GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

���� ������������#���� �

Heidrich und Seidel (1999) verwenden als reflektierendes Objekt anstatt einerKugel zwei Paraboloide.

Im Gegensatz zum Sphere-Mapping, wo die gesamte Umgebung in einer Textur abgelegt wird, werden zwei Texturen verwendet. Eine für die Halbkugel entgegen der Blickrichtung (hinten) und eine in Blickrichtung (vorne). Für die Normale im Punkt ���� ergibt sich:

2 2 2 21 1( , ) ( ), 1

2 2, � � � � � �= − + + ≤

2 2

1

1 1

" �� �

= + +

"

Page 36: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

36

SS 200071GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

���� ������������#���� �

Berechnung von Texturkoordinaten in einem Punkt ( des Objekts:Sei ' ���'

[�'

\�'

]W die Richtung des reflektierten Strahls (sie ist abhängig von

der aktuellen Beobachtungsrichtung!). Dann berechnen sich die Texturkoordinaten ����W wie folgt.

2( )' * " " *= −�Für den reflektierten Strahl gilt:

mit "��"[�"

\�"

]W�

und *������!+�Daraus folgt

2 2

2 2 2 2

2 2

2

10 01 2

2 0 01 1

1 1 1 1 21

1

[

\

]

X

X Y5 X X

5 Y Y Y

X Y X Y

5

X Y

+ +

= ⋅ − = + + + + − − − − − + + +

Auflösen nach � und � liefert , 1 1

\[

] ]

''� �

' '= =

− −

2 2

1( , ,1)

1

W

X Y

X Y+ +5

1

9

Y

X

( , )X Y3

Frontside

SS 200072GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

��� � �3������

+ Dual-parabolic Maps lassen sich mit einfachen Matrizenoperationen für unterschiedliche Blickrichtungen umrechnen. D.h. sie sind blickpunktsabhängig. + Wesentliche gleichmäßigere Abtastung als beim Sphere-Mapping.+ Weniger Aliasing Probleme.- Interpolation der Texturkoordinaten führt zu Artefakten.- Noch nicht in Hardware verfügbar.

Würfel auf Dual-Parabolische Maps abgebildet.

Page 37: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

37

SS 200073GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

!���#���� �

Mit den bisher beschriebenen Texturierungstechniken können nur Materialparameter variiert und Beleuchtungsergebnisse skaliert werden. Beleuchtete Flächen sehen dadurch bereits sehr viel variantenreicher und damit auch realistischer aus, trotzdem wirken sie häufig immer noch zu glatt.

SS 200074GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

!���#���� �

Gesucht ist daher eine einfache Technik, mit deren Hilfe Flächen rauh, runzlig, zerknittert oder gekräuselt erscheinen. Wollte man diese kleinen Unebenheiten geometrisch exakt modellieren, so könnte man z.B. zu einer gegebenen parametrischen Grundfläche (���� ein zweidimensionales Höhenfeld ����� addieren und würde so die Offsetfläche

( , )( , ) ( , ) ( , )

( , )

" � �( � � ( � � � � �

" � �′ = +

erhalten.

Page 38: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

38

SS 200075GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

!���#���� �

Für kleine Höhenwerte ist dieser Ansatz jedoch zu rechenaufwendig. Außerdem zeigt das Phong-Beleuchtungsmodell, daß die exakten geometrischen Positionen der Flächenpunkte (���� bzw. (-���� gar nicht direkt in die Beleuchtungsrechnung eingehen. Viel wichtiger sind die Normalenvektoren "����+ Die wesentliche Idee der Bump-Mapping-Technik besteht konsequenterweise darin, daß es für kleine Unebenheiten �����ausreicht, die Visualisierung mit der Originalgeometrie (���� durchzuführen, bei der Beleuchtungsrechnung aber die Normalen "-���� der Offsetfläche zu verwenden. Diese Normalenvektoren können durch

( , ) ( , ) ( , )X Y

" � � ( � � ( � �′ = ×

berechnet werden.

SS 200076GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

!���#���� �

Die Richtungsableitungen erhält man mit den bekannten Summen- und Kettenregeln:

( , ) ( , )( , ) ( , ) ( , ) ( , )

( , ) ( , )

( , ) ( , )( , ) ( , ) ( , ) ( , )

( , ) ( , )

X X X

X

Y Y Y

Y

" � � " � �( � � ( � � � � � � � �

" � � " � �

" � � " � �( � � ( � � � � � � � �

" � � " � �

′ = + +

′ = + +

Für kleine Werte h(u,v) können die hinteren Teilterme ignoriert werden:

( , )( , ) ( , ) ( , )

( , )

( , )( , ) ( , ) ( , )

( , )

X X X

Y Y Y

" � �( � � ( � � � � �

" � �

" � �( � � ( � � � � �

" � �

′ ≈ +

′ ≈ +

Page 39: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

39

SS 200077GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

!���#���� �

Für ".���� folgt damit:

, mit

( ) ( )

X Y X Y Y X X Y

X Y Y X

X Y Y X

" " " "" ( ( � ( � ( � �

" " " "

" /

� " ( � ( "" "/ � ( � (

" " "

′ = × + × + × + × = +

× − ×= × + × = Die zweidimensionale Bump Map ����� ist dabei in der Regel als diskretes Zahlenfeld bzw. als Grauwertbild gegeben. In diesem Fall werden die Richtungsableitungen �

Xund �

Ydurch

( , ) ( , )( , )

( , ) ( , )( , )

X

Y

� � � � � � �� � �

�� � � � � � �

� � ��

+∆ −=∆

+∆ −=∆

berechnet.

SS 200078GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

!���#���� �

Das Bump Mapping kann nur mit denjenigen Beleuchtungsverfahren kombiniert werden, die eine explizite Beleuchtungsrechnung in jedem Flächenpunkt durchführen. Beispiele hierfür sind das Phong-Shading- und das Raytracing-Verfahren. Das Gouraud-Shading-Verfahren erfüllt diese Bedingung jedoch nicht. 1997 wurde ein Bump-Mapping-Verfahren für Hardware vorgestellt.

Page 40: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

40

SS 200079GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

)����� $���� �

� Fassen Sie das Gelernte zusammen.� Definieren Sie Anwendungsmöglichkeiten

für das Gelernte.� Erbitten Sie Feedback zur

Schulungsveranstaltung.

SS 200080GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

Page 41: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

41

SS 200081GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

�������

� Glossar der Begriffe� Definieren Sie die Fachausdrücke, wie sie

zu diesem Thema verwendet werden.

SS 200082GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

Page 42: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

42

SS 200083GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

5���% $�������

� Nennen Sie Bücher, Artikel, elektronische Quellen.

� Beratungsdienste, andere Quellen

SS 200084GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

Page 43: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

43

SS 200085GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

.�������6 3(����0������

� Ergänzungen, ...� Wie geht es weiter

Nächstes Kapitel

SS 200086GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

Page 44: Professur Graphische Datenverarbeitung - Johann Wolfgang ... › lehre › ss2000 › Folien › … · Erste einfache Definition: Zweidimensionale Texturen oder kurz 2D-Texturensind

44

5����� ���� �����

SS 200088GDV9. Texturen© Prof. Dr.-Ing. Detlef Krömker

Text

TextText

� �Text

Text

TextTextVR

�:

�����