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
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
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
���������������� � �������
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
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:
������������
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
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)
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.
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
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
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
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
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
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
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
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.
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
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
]
\
[
����
����
����
���
���
���
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 +
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π
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
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
),(’ ���
�
��\][][\
<<< =
=
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]
⋅π
≠
@//@ ≠
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
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.
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
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
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.
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
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 ��
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()()(
’
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,�
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
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.
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.
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.
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
’
’
’
’
:
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.
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
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
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
42
SS 200483Graphische Datenverarbeitung4. Geometrische Transformationen© Prof. Dr.-Ing. Detlef Krömker
0�������A =)����'������
� Klipping und� Verdeckungsrechnung
Top Related