04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich:...

42
1 Prof. Dr.-Ing. Detlef Krömker *UDSKLVFKH'DWHQYHUDUEHLWXQJ Graphikbearbeitung und Rendering Geometrische Transformationen SS 2004 2 Graphische Datenverarbeitung 4. Geometrische Transformationen © Prof. Dr.-Ing. Detlef Krömker 5FNEOLFN Digitales Bild Digital- video Graphik Animation

Transcript of 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich:...

Page 1: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

1

Prof. Dr.-Ing. Detlef Krömker

*RHWKH�8QLYHUVLWlW��)UDQNIXUW

*UDSKLVFKH�'DWHQYHUDUEHLWXQJ

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

Graphikbearbeitung und RenderingGeometrische Transformationen

SS 20042Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

���������

DigitalesBild

Digital-video

Graphik Animation

Page 2: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

2

SS 20043Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

��������

1. Identifikation der Grundaufgaben � Primitive� Funktionen� Die Ausgabepipeline

2. Affine Transformationen� Homogene Koordinaten

3. Perspektivische Transformationen

SS 20044Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

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

4. Zusammenfassung 5. Glossar6. Weitere Informationen7. Ausblick – Nächste Schritte

Page 3: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

3

SS 20045Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

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

DigitalesBild

Digital-video

Graphik Animation

� �������������� = Erstellen und Verändernvon Geometrie und Merkmalsbeschreibungen = Graphisches Modellieren

� ������

= Transformation einer Geometrie und Merkmalsbeschreibung in ein Digitales Bild

SS 20046Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

Beschreibt ein Bild (2D) oder eine Szene (3D) durch� Ensemble von geometrischen Objekten

(Punkte, Linien, Flächen, Körper)� Erscheinungsattribute

(Farbe, Struktur, Textur, Parametern von Beleuchtungsmodellen, ... )

� Betrachtungsbedingungen

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

Page 4: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

4

Wichtige UnterscheidungDefinitionsbereich: 2D oder 3D

��: ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport Transformation

��: Szene wird durch virtuelle Kamera (Viewing Transformationen, perspektivische Transformation) auf 2D abgebildet

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

y z

x

x

y

SS 20048Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

���������� ������ ���!�� ����"�� �#��

� Instanzieren und Attributieren von Primitiven � Gruppieren (Mengen, Hierarchien)� (Geometrie) transformieren

� Skalieren Rotieren� Translieren (Scheren)

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

zum verändern, positionieren und orientierenim Modell- oder Weltkoordinatensystem

Page 5: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

5

SS 20049Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

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

� Grundlage: 2D Koordinatensystem kontinuierlich � REAL

� Graphische Objekte (Beispiele GKS)� Punkte � (Poly) Marker� Linien(zug) � Polygon

� Fläche � Füllgebiet� Text� (Dig. Bild) � (Fill Array)

(unsystematisch, aber als Füllmuster (Attribut) wichtig)

◊⊕⊗•∗−+ ��

SS 200410Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

$�����%���"�&!�������

� Kreise, Ellipsen – Kreisbögen, Ellipsenbögen� Rechtecke, Parallelogramme, ...� Pfeile, Spiralen, ...

� Kurven: Bezier, Splines, algebraische K.wichtige Primitive für Zeichenprogramme (=

Anwendungen) aber lassen sich auf:������������������ (Richtung, Größe) und ���� �� (Flächen, z.B. Dreiecke) zurückführen:

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

Page 6: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

6

SS 200411Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

"�� ��� �� (Modelling-Transformation)� Transformieren und Klippen

(Screen Mapping) Weltkoordinaten � GerätekoordinatenAusschnitt der „Welt“ � Teil der Zeichenfläche (Bildschirms), manchmal

auch Window genannt, meist aberWindow � Viewport

x

y

Zeichenfläche

SS 200412Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

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

� Rastern (Scan Konvertieren, Rasterisieren)Geometrische Primitive � Menge von Pixeln

Page 7: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

7

SS 200413Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

'����(���� ��� ���� ���)�������������������� ��

Fachhistorisch taucht der Begriff schon 1968 z.B. bei Appel auf. Zuächst findet man eine starke Anlehnung an die in der Kunst gebräuchlichen Verwendung: �������������� ��������������������. Appel 68: „��� ������� � ������ ����� ����������� �������������� ��������� ������� ���� ����������������������� �������������

PEX Glossary 88:„��� ������� ������������ ������ ������������� ��������� ��� �������� ������ ���� �� ���������

SS 200414Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

#�&'*���

Szene:� Menge der im Weltkoordinatensystem

positionierten und orientierten Objekte� Menge der positionierten und orientierten

Lichtquellen� Virtuelle Kamera (s)� Hintergrund� Umgebungseffekte (Nebel, Dunst)

Page 8: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

8

SS 200415Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

#�&+�,��

� Punkte (im Raum) und Orientierungen� Linien� Flächen

� (ebene) Dreiecke, Vierecke, Polygone, ...Sonderformen: triangle strips, triangle meshes, ...

� gekrümmte: Bezier, Spline, ...

� Körper� analytisch: Kugel, Zylinder, Torus, Quader, ... , Quadriken� polygonal: „Boundary Representation“� CSG Objekt: Constructive Solid Geometry� ...

SS 200416Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

#��� ��� �&�-������������

� Punkte (im Raum) � Orientierungen� Geraden� Dreiecke (Vierecke)

und deren Sonderformen (strips, meshes, ...)

Alle anderen Modellierungsprimitive lassen sich (relativ leicht) mit wählbarer Approximationsgenauigkeit auf diese Primitive abbilden (zerlegen) ... und zwar mit vergleichsweise geringem Aufwand.

Page 9: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

9

SS 200417Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

#�&� ��� �

Drei Grundprobleme:1. Welches Objekt beeinflusst welches

Pixel und wie sind die Objekte in Blickrichtung der Kamera relativ zueinander geordnet?

2. Welcher Farbwert ist diesem Pixel aufgrund der Objekteigenschaften, der Kameraposition der Lichtquellen und der Umgebungsverhältnisse zuzuordnen?

3. Wie sind verschiedene Objekteinflüsse zu überlagern und zu mischen

Geometrie-problem

Beleuchtungs-rechnung

Überlagerung

SS 200418Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

#�&� ��� ���� ���������

Geometrie-konvertierung

(lokale)Beleuchtungs-

rechnung

ProjektiveAusgabe

Geometrie-konvertierung

(globale)Beleuchtungs-

rechnung

StrahlverfolgungRaycasting: n =1 Raytracing: n >1

Geometrie-konvertierung

Radiosity

i<n

(globale)Beleuchtungs-

rechnung

Page 10: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

10

SS 200419Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

.����� ����������� ������ �

� Projektive Ausgabe� Raster Scan Verfahren

� Strahlverfolgung� Raycasting, Raytracing

SS 200420Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

!�� �����*����� � /��*����� �

(Vorverarbeitung)for every pixel

generate ray��� each solid check affection

�� solid affected�� ��� every polygontransform polygoncompute intersection�����

���� ����� sort intersections by depth (z-value)evaluate shading, texturing, illumination(generate secondary ray; trace it)

endfor;

Bildebene

Strahl

Page 11: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

11

SS 200421Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

!�� ���� ��� �&!����

���,���� 0������� .���� ��

Traverse SceneFile extract RendPrimfor each RendPrim do

(model transformation +view transformation)

evaluate lighting for each vertexprojection (into a unit cube)clip against unit cubemap to screen coordinatesscan convert RendPrimfor each affected pixel do

interpolate colorresolve visibility (z-Buffer)

endend

Model and ViewTransformation

Beleuchtungs-rechnung

Projektion

Klipping

Screen Mapping

Rastern(Scan Konvertieren)

Visibilitätsrechnungz-Buffer

Geo

met

risch

e B

erec

hnun

gen:

~ #

Pun

kte

Ras

tern

~#

Pix

elFür jeden Eckpunkt

InterpoliereErgebnisse der

SS 200422Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

���� �.�(&1�� ���������

� Szene modellieren: � Objekte, Lichtquellen, Kamera im

Weltkoordinatensystem positionieren und orientieren

� Virtuelle Kamera sieht nur Auschnitte der Welt: � Transformation in ein kanonisches Kamera-

(Viewing-, Eye-) Koordinatensystem:z.B. in Richtung der negativen z-Koordinate

Page 12: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

12

SS 200423Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

.�( 1�� ���������

x

z

x

z

Blickrichtung

y y

Sichtpyramide(-nstumpf)view frustrum

SS 200424Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

-������ ����� � �

� Gouraud Shading:� Farbwert für jeden Eckpunkt

berechnen � Beim Scan-Konvertieren

Farbwerte interpolieren� ERGEBNIS: schattierte

geglättete, matte Oberfläche, keine Glanzlichter

� Phong Shading: � Normalen an jedem Eckpunkt

berechnen� Beim Scan-Konvertieren

Normalen interpolieren� Für jedes Pixel Beleuchtungs-

gleichung berechnen

Page 13: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

13

SS 200425Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

!��,����

Abbildung des Raumes auf die Bildebene:

zwei Grundformen:� Parallelprojektion

� Perspektivische Projektion(Virtuelle Lochkamera)

� Ergebnis: Sichtvolumen (Rehteckoder Pyramide) wird auf normalisierte Gerätekoordinaten(Einheitswürfel) abgebildet

!�"�

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

!�"�

#� ����

#� ����∞←

Bild

Projektionsebene

SS 200426Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

2����

Nur Primitive, die ganz oder teilweise innerhalb der Sichtpyramide liegen, müssen an die nächsten Stufen weitergegeben werden.

3 Fälle für Primitive (Objekte)� vollständig enthalten � weiterreichen� vollständig außerhalb �erledigt

� teils-teils � Neue Eckpunkte am Rand der Sichtpyramide berechnen

x

z

y

x

z

y

neueEckpunkte

Einheitswürfel = transformierte Sichtpyramide

Page 14: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

14

SS 200427Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

'�� ���� �

Ähnlich wie im 2D:Normalisierte Gerätekoordinaten (3D REAL) �

2D (x,y) Pixelkoordinaten und z-Wert + (Farbe, Normale, Texturkoordinate, ...) für weitere Berechnungen

Auschnitt der „Welt“ �„Fenster“ (Viewport) der Bildschirmfläche

SS 200428Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

����� 3.��������)������ � �

� Berechnen der Farb- und z-Werte für alle betroffenen Pixel

� z-Wert-Vergleich: nur das zuvorderst liegende Pixel wird angezeigt

Page 15: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

15

SS 200429Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

4����� ����� �� ��� � !����

� �������$� �������: Dreiecke (Vierecke, Polygone), Linien, Vektoren,

Raumpunkte� !�������: affine und perspektivische Transformationen,

Beleuchtungsrechnung, Klippen� ������$

� �������$�wie oben in normalisieren Geräte (Pixelkoordinaten) und Pixel (Farbe, z-Werte, Texturkoordinaten, ...)

� !�������: Raster Scan, Beleuchtungsrechnung, Texturmapping, ...

%��&'��$�(�����'������ � ����������'���)��*�����������+ ��'���������'�� �'����,�� �������� �������+� �������,!�������������-

SS 200430Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

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

� Geometrische Transformationen

� Positionieren� Verschieben - Translieren� Drehen – Rotieren� Scheren

von starren Körpern im Raum

Page 16: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

16

SS 200431Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

6�������(7� ��0�����

.�������'������������������#� ���

Ein n-dimensionaler Euklidischer Raum sei mit �n

bezeichnet. Ein Vektor � in diesem Raum ist ein n-Tupel

1,...,1,0,

.

.

1

1

0

−=∈

=⇔∈

����

L

Q

Q ����

Desweiteren gelten die bekannten Regel für die AdditionSkalarmultiplikation, Skalarprodukt, Vektorprodukt, ...

SS 200432Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

����� /���*� können benutzt werden, um Vektoren zu

manipulieren: Eine Matrix /�wird beschrieben durch p x q Skalare mit

[ ]LMTSSS

T

T

LM

���

���

���

!"��

=

=

−≤≤−≤≤

−−−−

1,11,10,1

1,11110

1,00100

...

...

...

10,10

����/

Es gelten die bekannten Regeln und Zusammen-hänge zurAddition, Skalarmultiplikation,Tansposition,Multiplikation,Inversionzu Determinanten,Eigenwerten, Eigenvektoren und orthogonalen Matrizen.

Page 17: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

17

SS 200433Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

����8&.���� ������������

Beschreibt lineare Abbildungen des Vektors v.0/���*��1������������������������*��-2

=

=

==

=−

=

−−−−

�S

T

N

NNS

T

N

NN

�S

TSS

�T����

#

#

��

��

��

��

���

���

1

0,1

1

0,0

1,11

/�1

Notationen und Rechenregeln für Vektoren und Matrizen

SS 200434Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

���������� ��������� Wir betrachten den 3D-Raum (o.b.d.A. rechts-händiges

Koordinatensystem)

Ein Vektor � = (vx, vy, vz) kann interpretiert werden als:� Punkt im Raum oder als� gerichtete Linie (Richtungsvektor)

Eine (3x3)-Matrix beschreibt eine lineare Abbildung: � Skalierung� Rotation� Scherung

aber keine Translation, d.h. keine affinen Abbildungenkeine perspektivische Abbildung

Page 18: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

18

SS 200435Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

1

0

2

1

0

2

1

0

2

1

0

Y

Y

Y

RGHU

Y

Y

Y

Y

Y

Y

9���� 2����� ��

erweitern einen 3D-Vektor um ein weiteres Element:

� Richtungsvektor

� Raumpunkt

SS 200436Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

9���� 2����� ��

Erweitern von (3x3)-Matrizen zu (4x4)-Matrizen:

beschreiben ����� beschreiben �����Abbildungen Abbildungen, also auch

3���������� 4[��

\��

]5�

und auch perspektivische (spezielle projektive) Abbildungen

�����

�����

����

���

1000222121

121110

020100

222121

121110

020100

]

\

[

����

����

����

���

���

���

Page 19: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

19

SS 200437Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

1�� ������ Die Multiplikation der Translations-matrix 3 mit einem Punkt��= (px, py, pz, 1)T ergibt:

�6 = (px+tx, py+ty, pz+tz, 1)T .#������ :

Der Richtungsvektor ��= (vx, vy, vz, 0)T

bleibt durch 3�unverändert.

==

1000

100

010

001

),,()(]

\

[

]\[ �

���� 33

x

y

x

y

5

2

T(5,2,0)

SS 200438Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

������� ����9��������

=

−=

=

1000

0100

00cossin

00sincos

)(

1000

0cos0sin

0010

0sin0cos

)(

1000

0cossin0

0sincos0

0001

)(

φφφφ

φ

φφ

φφ

φφφφφ

φ

]

\[

��

.� ��'����$1. Summe der Elemente der Haupt-

diagonale Ist bei allen �Lgleich

2. Punkte auf der Rotations-Achse bleiben unverändert.

3. Rotationsmatrizen sindorthonormal � �-1 = �T

φcos22 +

Page 20: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

20

SS 200439Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

-�����:������� �����&0���

x

y

=

1000

0100

006

cos6

sin

006

sin6

cos

)6

(ππ

ππ

π]

)6

]�

x

y

SS 200440Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

-�����:���� ���� !� ���� ����&0���

x

y3(p)

x

y p3(-p)

)4

]�

x

y

x

y

)4

]�

)()4

()( �]

−= 3��37π

Page 21: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

21

SS 200441Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

'������ �Man nennt eine Skalierungisotropisch (uniform), wenn

sonst anisotropisch (non-uniform).

==

1000

000

000

000

),,()(]

\

[

]\[ �

���� 88

x

y

x

y

8(2,0.5,1)

,]\[

��� ==

SS 200442Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

5�� ������

=

=

1000

0100

0010

0001

1000

000

000

000

8

Alternative Matrix für isotropischeSkalierung

Oft nicht effizient, weilHomogenisierung nötig.

=

1000

000

000

000

]

\

[

8

Wenn ein oder drei Skalierungsfaktorennegativ sind, erhält man eine Reflektions- (Spiegel-)Matrix.

Achtung: Dies verändert den Umlaufsinn der Koordinaten bei Polygonen:

Wenn zwei Skalierungsfaktorennegativ sind, entspricht dieseiner Rotation um 1800.

� 4�����������4�9�5,/���95�:�;�� /���9����8�� �����9

Page 22: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

22

SS 200443Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

'���� �

beeinflußtScherungdiedie,Koordinate:

wirdverändertdie,Koordinate:

)(),(),(),(:

1000

0100

0010

001

)(

1000

0100

0010

001

)(

���� $#����

���� ������

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

]\][\]\[

[][\

<<<<

<<

=

=

x

y

x

y

<[]

(s) spz

+

]

\

][

���

SS 200444Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

0��� ������� ���� '���� ��������

Achtung:Manche Autoren (z.B. Foley, van Dam) benutzen

andere Definitionen für Scherungsmatrizen:

)()(

1000

0100

010

001

),(’ ���

��\][][\

<<< =

=

Page 23: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

23

SS 200445Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

4����� ����� �0��� 0������ �

2D 3DLineare Abbildungen ��lassen sich durch eine Matrixmultiplikation

��= �* 9

beschreiben: Skalierung, Rotation, ScherungEine Translation lässt sich durch eine Addition beschreiben:

��= 3+ 9

(���1=��'������������'����'������ �����/�����������$���� ��� ����'������ ��)��������$�.����� �����������������

������������>?

=

2

1

2221

1211

2

1

[

[

OO

OO

\

\

=

3

2

1

333231

232221

131211

3

2

1

[

[

[

OOO

OOO

OOO

\

\

\

+

=

2

1

2

1

2

1

[

[

W

W

\

\

+

=

3

2

1

3

2

1

3

2

1

[

[

[

W

W

W

\

\

\

SS 200446Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

2� ��� ���� �� ����� Nacheinanderausführung von Transformationen erfolgt

durch Multiplikation (von links)Matrizenmultiplikationen sind ��'����������$�

x

y)

6(π

]5

x

y

x

y

x

y

)1,5.0,2(6

)6

]5

x

y

x

y)1,5.0,2(6

( )6)1,5.0,2( π]

56 ⋅

( ) )1,5.0,2(6 65]

⋅π

@//@ ≠

Page 24: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

24

SS 200447Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

.� 7;<1�� ����� =��

VRML 97 hat keine allgemeine (4x4) Matrix Transformation sondern eine Skalierung 8��eine Rotation ������eine Translation 3(t) in fester Folge

)()()( '38���'337 −= ����

1. Translation T zum ������ �����'2. Skalierungsrotation �

V

7, Skalierung 8, Rückrotation �V

3. Rotation �4. Rücktranslation vom ������ �����'5. Translation 3(t)

SS 200448Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

1�� ��������� ������2%���

� )���Skalierung und Scherung (formverändernd)� Nur Rotation und Translation (6 Freiheitsgrade)

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

����

�����

�����

���� 7

]

\

[

����

����

����

1111

222120

121110

020100

)(

1000

)(

:Beachte

Page 25: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

25

SS 200449Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

1�� ��������� �� =�����

� Matrizen können Punkte, Linien, Polygone, ... transformieren

� Vorsicht bei @������A

x

y

x

y

x

y

0,5 entlang der x-Achse

����'� ��'��

SS 200450Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

Wird eine Matrix /�benutzt um Geometrie zu transformieren, dann müssen zugehörige Flächennormalen mit

transformiert werden.Sonderfälle:

Reine Rotationsmatrizen! Warum?

Translationen verändern Normalen nicht!Transformation starrer KörperUniforme Skalierungen

1�� ��������� �� =�����

( )�1−= /@Hier ohne Beweis angegeben, siehe z.B. Turkowski´s Beitrag in *UDSKLFV�*HPV�

$��*ODVVQHU �(GW��

} Anstelle von N kann M benutztwerden. Renormalisieren.

Page 26: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

26

SS 200451Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

!��,����0������ �

Rückblick:Ausgabepipeline

Alle geometrische Objekte der Szene müssen auf eine 2D Fläche abgebildet werden:

���"����

Model and ViewTransformation

Beleuchtungs-rechnung

Projektion

Klipping

Screen Mapping

Rastern(Scan Konvertieren)

Visibilitätsrechnungz-Buffer

SS 200452Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

!��,����

� Parallelprojektion

� Perspektivische Projektion

!�"�

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

!�"�

#� ����

#� ����∞←

Bild

Projektionsebene

Page 27: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

27

SS 200453Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

5� ���� �� �����������!��,����

Hauptrisse

isometrisch dimetrisch trimetrisch

Axometrie

rechtwinklig

Kavalier Kabinett

schiefwinklig

parallel(orthographische)

1-Punkt 2-Punkt 3-Punkt

perspektivische

ebene geometrischeProjektionen

Beachte:Für technische Zeichnungen sind längentreue Projektionen, insbe-sondere die Hauptrisse sehr wichtig.Perspektivische Abbildungen sind vonHand sehr aufwendig� vielen orthographischen Projektionen, die räumlichen Eindruck vermitten.

Details siehe z.B. Encarnacao, Straßer, Klein:Graphische Datenverarbeitung

SS 200454Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

!���������,���� 9��������

Kennzeichen der Parallelprojektionen:�����������������������AAA

Ein einfaches Beispiel: � Der Betrachter schaut (aus dem Unendlichen) in

Richtung der negativen z-Achse, mit y nach oben und x nach rechts (Rechtssystem) (Achtung: in der Literatur zum Teil anders dargestellt)

� Die Projektion erfolgt auf die xy-Ebene, d.h. z=0

Page 28: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

28

SS 200455Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

!��,���� �����8*&5�

� Die z-Komponente wird zu Null gesetzt

� Unterdrückt die z-Komponente

� Achtung: positive und negative z-Werte werden aud die xy-Ebene abgebildet

Projektionsebenez0=0

=

1000

0000

0010

0001

0�

z

x

y

#'��� $�Auch Objekte auf der Seite des Augpunktes (auch hinter dem Beobachter) werden auf die Bildebene projiziert.

SS 200456Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

9��������

Stimmt die Projektionsrichtung mit einer der Koordinaten-Richtungenüberein, so erhalten wir je nach Wahl der Ebene und des Vorzeichens der Projektionsrichtung einen der sechs Hauptrisseeines Objektes. In Matritzenschreibweise

beispielweise ist die Projektion auf die Ebene $�%�$�

gegeben durch

=

1000

000

0010

0001

00 $]

=

1000

0100

000

0001

0

0

�\

=

1000

0100

0010

000 0

0

[�

In den meistens Fällen wird man für x0, y0, oder z0 den Wert Nullwählen.

Page 29: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

29

SS 200457Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

����� ���� �

In der Regel wird bei Implementierungen mit der Projektion auch das Klipping vorbereitet:

Anstelle der Projektion auf eine Ebene und einem Klippen in dieser Ebene

transformiert man in ein kanonisches ViewVolume (Quader) und klippt an dessen Flächen und führt mit dem Screenmapping die „einfache“ Projektion durch. Details betrachten wir später!

Man führt Backface- und Frontface-Klipping ein.

SS 200458Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

��� ���� 00--�8�� ���� � ��� �� � ��8

Eine axis alingned bounding box (kurz AABB, oder boundingbox) ist ein zum Koordinatensystem achsparalleler Quader, (ein Quader bei dem die Normalen seiner Flächen parallel zu den Achsen des Koordinatensystems liegen). Ein AABB wird durch zwei Extrempunkte, nämlich �min und �max bestimmt, mit

{ }$� LL

,,,maxmin ∈∀≤ ��z

x

y amax

amin

Page 30: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

30

SS 200459Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

1�� ��������� � ����� � ����'���������

Ein Sichtvolumen wird als 6-Tupel definiert(����������������&�[near, far, left, right, bottom, top].Dieser achsparallele Sichtquader AABB mit

wird in das kanonische Sichtvolumen transformiert

=

=

�maxmin ��

=

−−−

=1

1

1

1

1

1maxmin ��

SS 200460Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

1�� ��������� � ����� � ����'���������

z

x

y

z

x

y

z

x

y

f

r

l

nb

t

345

84�5

=

=

�maxmin ��

=

−−−

=1

1

1

1

1

1maxmin ��

Page 31: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

31

SS 200461Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

1�� ��������� � ����� � ����'���������

−+−

−+−

−+−

=

=

+−

+−

+−

==

1000

200

02

0

002

10002

100

2010

2001

1000

02

00

002

0

0002

)()(

QI

QI

QI

EW

EW

EW

OU

UO

OU

QI

EW

UO

QI

EW

OU

VR

W763

#'��� $�In der Computergraphik (z.B. OpenGL) wird beim Viewing häufig ein Linkssystem benutzt: dadurch ist z.B. z-Buffering „intuitiver“, weil Objekte größere z-Werte haben, je weiter sie entfernt sind.

SS 200462Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

4������� ����� Transformationsmatrix in OpenGL benutzt Linkssystem

Andere Implementierungen bilden die z-Werte auf [0,1] ab anstatt auf [-1,1].

22VW2

22SHQ*/

QI

QI

QI

EW

EW

EW

OU

UO

OU

WV

3303

6763

==

−+−

−−

−+−

−+−

=−=

1000

5,05,000

0010

0001

1000

200

02

0

002

)1,1,1()()(

Page 32: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

32

SS 200463Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

!�����������1�� ��������� ���4 �������,����

���!�� ���

z x

yq

p

z

x

z = -dz = -d

pz

qx px

−−−

=

=

==

110100

0100

0010

0001

G

SGS

SGS

GS

S

S

S

S

S

S

G

ZHLO]\

][

]

]

\

[

]

\

[

SS3T

=

0100

0100

0010

0001

G

VRPLWS3

tz!Strahlensa ,, GTS

SGTQGHQWVSUHFKH

S

SGT

S

G

S

T]

]

\

\

]

[

[

][

[ −=−=−=⇔−=

SS 200464Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

����� ���� � !�����������1�� ���������

� Wie bei der Parallelprojektion transformieren wir die „Welt“ in das kanonische View Volume

� Das Sichtvolumen ist hier ein �������������4view frustum)

z

y

z

x

y

xx

�4�5(r,t,f)

(l,b,n)

��'�$Bei symmetrischen Sichtvolumen:

�B,���B,�

Page 33: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

33

SS 200465Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

����8��1�� ��������� ��'�����*�����

z

y

z

x

y

x

�4�5(r,t,f)

(l,b,n)

−−−

−→

−−

−+−+−

−+−

=

1

1

1

1

1

,

1

1

1

1

10100

200

02

0

002

Q

E

O

Q

W

U

DOVR

QI

IQ

QI

QI

EW

EW

EW

Q

OU

UO

OU

Q

S3

SS 200466Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

4������� �����

!���� Gründe wie zuvor angegeben:

0<n‘<f‘ sind Abstände auf der negativen x-Achse

���'7:

near-plane wird auf z=0 abgebildet

Änderungen ergeben sich aus entsprechender Skalierung und Translation (siehe zuvor)

−−

−−

−−+

−+

=

−−

−−+−−+

−+

=

0100’’

’’’’

’00

02

0

002

0100’’’’2

’’’’

00

02

0

002

QI

QI

QI

I

EW

EW

EW

Q

OU

UO

OU

Q

QI

QI

QI

QI

EW

EW

EW

Q

OU

UO

OU

Q

'LUHFW;

2SHQ*/

3

3

Page 34: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

34

SS 200467Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

4����� ����� �� ��� �&!����

Model and ViewTransformation

Beleuchtungs-rechnung

Projektion

Klipping

Screen Mapping

Rastern(Scan Konvertieren)

Visibilitätsrechnungz-Buffer

Modellingtransformationen

Viewing Transformationen

Homogene Koordinaten

Ein bisschen (mehr) üben!

SS 200468Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

5�� ������ !��,����� 0������ �

1. Projektive Abbildungen im �3 werden durchlineare Abbildungen des �4 beschrieben.

2. Geraden werden auf Geraden abgebildet.

3. Die Reihenfolge (und das Doppelverhältnis) von Punkten auf projektiven Geraden bleiben erhalten.

Perspektivische Abbildungen sind spezielleprojektive Abbildungen.

Page 35: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

35

SS 200469Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

!����������� 0������ �

Die durch

festgelegte perspektivische Transformation hat folgendeweitere Eigenschaften:

+

=

=

# $

#

$

#

$

�3

00

1001

0100

0010

0001

:

SS 200470Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

5�� ������ �>�

Für ��� und ����� sind die Bildpunkte dieser Abbildung alle von der Form ����� W d.h. alle Punkte auf der affinen Geraden x= -x0 werden auf unendlich ferne Punkte abgebildet. Um Unstetigkeiten in der perspektivischen Transformation zu vermeiden, bildet man nur Punkte einer der beiden durch diese Gerade bestimmten Halbebenen ab. Man nennt dann diese Halbebene Sichtfeld und die Gerade x=-x0 Sichtgerade.

Page 36: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

36

SS 200471Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

5�� ������ �"�

Aus 1. folgt zunächst, daß der affine Punkt ����� W auf den unendlich fernen Punkt ����� W���� W, d.h. auf die Richtung der �-Achse abgebildet wird.Nach 2. bleiben die Punkte der affinen �-Achse bei der Transformation fest.

Da bei projektiven Abbildungen Geraden auf Geraden abgebildet werden, folgt daraus, dass eine affine Gerade durch den Augpunkt ����� W, welche die affine �-Achse im Punkt ���� W schneidet, auf eine affine Gerade parallel zur �-Achse durch den Punkt ���� W abgebildet wird.

SS 200472Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

5�� ������ �#�

Der Punkt ��� W wird auf den Punkt �������� W abgebildet. Daher enthalten die Bildgeraden von Parallelen zur affinen Geraden mit der Richtung ��� W

alle den Punkt �������� W , d.h. sie schneiden sich in diesem Punkt. Variert man� und �, so sieht man, daß die Gesamtheit der Bildpunkte aller Richtungen ��� W auf der Geraden x=x0 liegt. Diese Gerade heißt Fluchtgerade.

Page 37: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

37

SS 200473Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

5�� ������ �?�

Die Schnittpunkte der Bildgeraden von Parallelen zu den Koordinatenachsen werden Hauptfluchtpunkte oder einfach Fluchtpunkte genannt. Nach 4. schneiden sich die Bildgeraden von Parallelen zur �-Achse alle in dem affinen Punkt ���� W.Nach 2. bleiben Parallelen zur �-Achse parallel, d.h. sie schneiden sich nur im unendlich fernen Punkt ��� W ihrer Richtung. Daher besitzt die perspektivische Abbildung,die durch �S dargestellt wird, nur einen Hauptfluchtpunkt im Affinen. Man nennt diese spezielle Perspektive daher Einpunktperspektive.

SS 200474Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

5� &@4(�& � ������ ����������

Eine allgemeine perspektivische Transformation ist durch

gegeben. Die Richtungen von Parallelen zu den Koordinatenachsen, d.h. die Punkte���� W����� W, bzw. ���� W werden auf die Fluchtpunkte ����� W����� W�bzw. ����� W abgebildet.

+++

=

=

#$$

��

$

#

$

$� #

$

�3

000000

1111

0100

0010

0001

:

Page 38: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

38

SS 200475Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

��� ���� � � ������������ 1�� ��������

Bei der praktischen Anwendung von Projektionen liegt der Standort des Betrachters beliebig im Objektraum. Eine allgemeine perspektivische Transformation wird durch die Festlegung eines Augpunktes (���), eines Blickbezugspunktes (����) und der Angabe einer Oben-Richtung (����) festgelegt.

Die virtuelle Kamera werden wir später detaillierter betrachten!

SS 200476Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

-��� � � � � ������������ 1�� ��������

�� Berechnung des Bildschirmkoordinatensystems mit Ursprung ���� und denBasisvektoren �’[, �’\ und �’]: �’] wird durch ���� und ��� definiert. �’[ steht senkrecht auf den Vektoren ���� und �’]. Da die �-Achse des Bildschirm-koordinatensystems in die entgegengesetzte Richtung des ����-Vektorszeigt, bilden die drei Vektoren �[’, ����, und �]' ein linkshändiges,noch nicht notwendig orthogonales, Koordinatensystem.

Der Vektor ���� wird daher durch den Vektor �'\ senkrecht zu �'] und �'[ersetzt, so daß �'[,�'\ und �'] ein rechtshändiges orthogonales

Koordinatensystem bilden. Die Vektoren �'[, �'\ und �'] müssen normiert werden! � Translation des Bildschirmkoordinatensystems in den Ursprung. � Rotation des Bildschirmkoordinatensystems auf das Welt- bzw. Referenz-koordinatensystem:

�'[→ ����‘\→ ����‘]→ ���

�� Perspektivische Transformation mit Abstand | ���� -����, wobei der Beobachtungspunkt (���) auf der negativen �-Achse liegt.

Page 39: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

39

SS 200477Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

4����� ����� �

1. Identifikation der Grundaufgaben � Primitive� Funktionen� Die Ausgabepipeline

2. Affine Transformationen� Homogene Koordinaten

3. Perspektivische Transformationen= spezielle projektive Abbildungen

SS 200478Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

4����� ����� �9���� ����8

Teilmatrizen:lineare Transformationen� Skalierung

� Rotation

� Scherung

TranslationenProjektionen: perspektivische Transformationen

1323130

23222120

13121110

03020100

Page 40: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

40

SS 200479Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

�������

(Modelling-Transformation)� Transformieren und Klippen

(Screen Mapping) Weltkoordinaten � GerätekoordinatenAusschnitt der „Welt“ � „Fenster“ der ZeichenflächeRastern (Scan Konvertieren, Rasterisieren)Geometrische Primitive � Menge von Pixeln

� Rendering� Skalieren� Rotieren� Translieren� Scheren

SS 200480Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

�������

� 3D-Szene:� Menge der im Weltkoordinatensystem

positionierten und orientierten Objekte� Menge der positionierten und orientierten

Lichtquellen� Virtuelle Kamera (s)� Hintergrund� Umgebungseffekte (Nebel, Dunst)

� axis aligned bounding box

Page 41: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

41

SS 200481Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

�������

� Projektive Ausgabe � Raster Scan Verfahren� Strahlverfolgung � Raycasting, Raytracing� Rendering Pipeline� Euklidischer Raum und Lineare Algebra� Matrizen� Affine Abbildungen� Homogene Koordinaten� VRML 97 Transform Node� Transformation von Normalen� Projektive Abbildungen

SS 200482Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

�������

2D-Primitive� Punkte � (Poly) Marker� Linien(zug) � Polygn� Fläche � Füllgebiet� Text� (Dig. Bild) � (Fill Array)

(unsystematisch, aber als Füllmuster (Attribut) wichtig) Kreise, Ellipsen – Kreisbögen, Ellipsenbögen

� Rechtecke, Parallelogramme, ...� Pfeile, Spiralen, ...

� Kurven: Bezier, Splines, algebraische Kurven

Page 42: 04 Rendering -- Geometrische Transformationen€¦ · 4 Wichtige Unterscheidung Definitionsbereich: 2D oder 3D : ggf Ausschnitt aus Definitionsbereich darstellen: Window-Viewport

42

SS 200483Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker

0�������A =)����'������

� Klipping und� Verdeckungsrechnung