seminar 3-d grafik mathematische grundlagen, räume ...pilop/3d-basics.pdf · seminar 3-d grafik...
TRANSCRIPT
Seminar 3-D Grafik
Mathematische Grundlagen, Räume, Koordinatensysteme, Projektionen
Hermann Schwarz
Marko Pilop
2003-11-20
http://www.informatik.hu-berlin.de/~pilop/3D_basics.pdf
{hschwarz|pilop}@informatik.hu-berlin.de
1. Vektoren und Vektorräume
2. Matrizen und Matrizenmultiplikation
3. Darstellung von Objekten in 2- und 3-dimensionalen kartesischen Koordinatensystemen3.1. Linien, Ebenen, deren Schnittpunkte und Schnittgeraden3.2. Polygone und deren Flächeninhalte
4. Geometrische Transformationen im 2- und 3-dimensionalen Koordinatensystem
4.1. Translation4.2 Skalierung4.3 Rotation
5. Homogene Koordinaten und Matrixdarstellung von Transformationen in homogenen Koordinaten
5.1. Translation und Rotation
5.2. Skalierung, Spiegelung, Projektion und Scherung
5.3. Verknüpfung von Transformationen
5.4. Inverse Transformationen
Vektorraum
Menge V mit Addition und skalarer Multiplikation, für die Vektorraumaxiome gelten
Vektor
Element des n-dimensionalen Euklidischen Zahlenraums
n
IR , representiert durch seine reellwertigen Koordinaten
x1, ........, xn in IR,
geschrieben als Zahlentupel (n-Tupel)
Vektoren und VektorräumeVektoren und Vektorräume
Linearkombination
x, y, z linear unabhängig,
falls es für keinen von deneneine Linearkombination deranderen gibt
Vektoren und VektorräumeVektoren und Vektorräume
Skalarprodukt
Das Skalarprodukt zweier
Vektoren x und r resultiert
in einer skalaren Größe.
Länge oder Betrag eines
Vektors p
Wenn r z s Y r A s = 0
Vektoren und VektorräumeVektoren und Vektorräume
Matrizen und MatrizenmultiplikationMatrizen und Matrizenmultiplikation
Matrizen und Matrizen und MatrizenmultiplikationMatrizenmultiplikation
Die 3x3 Matrix
Das Produkt der Matrix A mal Spaltenvektor x
Matrizen und Matrizen und MatrizenmultiplikationMatrizenmultiplikation
Multiplikation zweierMatrizen
beide Matrizen aus demselbenVektorraum !
Matrizenmultiplikation imallgemeinen nicht kommutativ!
Matrizen und Matrizen und MatrizenmultiplikationMatrizenmultiplikation
Enxn =
Amxn @ Enxn = Amxn
Matrizen und Matrizen und MatrizenmultiplikationMatrizenmultiplikation
1...0
.....
.....
0.010
0..01
Darstellung von Objekten in 2Darstellung von Objekten in 2-- und 3und 3--dimensionalen kartesischen dimensionalen kartesischen
KoordinatensystemenKoordinatensystemen
Darstellung von Objekten in 2Darstellung von Objekten in 2--und 3und 3--dimensionalen dimensionalen
kartesischen kartesischen KoordinatensystemenKoordinatensystemen
Dreidimensionales kartesisches Koordinatensystem
Ein Punkt a: repräsentiert durch ein Ortsvektor
Richtung von Punkt a nach Punkt b : repräsentiert durch ein Richtungsvektor (Differenzvektor v=b-a)
Darstellung von Objekten in 2Darstellung von Objekten in 2--und 3und 3--dimensionalen dimensionalen
kartesischen kartesischen KoordinatensystemenKoordinatensystemen
Linie und Liniensegment
Darstellung von Objekten in 2Darstellung von Objekten in 2--und 3und 3--dimensionalen dimensionalen
kartesischen kartesischen KoordinatensystemenKoordinatensystemen
Ebene
wird durch zwei linear unabhängige Vektoren aufgespannt
parametrische Form:
Darstellung von Objekten in 2Darstellung von Objekten in 2--und 3und 3--dimensionalen dimensionalen
kartesischen kartesischen KoordinatensystemenKoordinatensystemen
Darstellung eines Dreiecks
Dreieck – durch a, b, und c begrenzte Ebene
Kreuzprodukt
definiert durch folgende Determinante
Darstellung von Objekten in 2Darstellung von Objekten in 2--und 3und 3--dimensionalen dimensionalen
kartesischen kartesischen KoordinatensystemenKoordinatensystemen
Berechnung des Flächeninhalts eines Dreiecks mit Hilfe des Kreuzproduktes
Flächeninhalt =
Darstellung von Objekten in 2Darstellung von Objekten in 2--und 3und 3--dimensionalen dimensionalen
kartesischen kartesischen KoordinatensystemenKoordinatensystemen
Implizite (allgemeine) Form einer Ebenengleichung
aus
und p A n = 0 œ Geraden p auf der Ebene
folgt : œ p‘ (Punkte der Ebene)Y
Allgemeine Gleichung
Darstellung von Objekten in 2Darstellung von Objekten in 2--und 3und 3--dimensionalen dimensionalen
kartesischen kartesischen KoordinatensystemenKoordinatensystemen
, ( Flächennormale n = r x s )
durch Normierung (Division jeder Gleichungkomponente
durch den Betrag des Normalenvektors) erhält man
Hessesche Normalform der Ebenengleichung:
n A P – d = 0
oder
n A P = d ,
Wobei d = q A n Abstand der Ebene zum
Koordinatenursprung ist.
q – Punkt aus der parametrischen Form
n – der normierte Normalenvektor der Ebene
Darstellung von Objekten in 2Darstellung von Objekten in 2--und 3und 3--dimensionalen dimensionalen
kartesischen kartesischen KoordinatensystemenKoordinatensystemen
Abstände zwischen zwei Punkten
gleich dem Betrag des Differenzvektors
Winkel zw. Zwei Vektoren
Darstellung von Objekten in 2Darstellung von Objekten in 2--und 3und 3--dimensionalen dimensionalen
kartesischen kartesischen KoordinatensystemenKoordinatensystemen
Winkel zw. Gerade und Ebene
Y Winkel zw. Richtungsvektor der Geraden
und Normalenvektor der Ebene
Winkel zw. zwei Ebenen
Y Winkel zw. Normalenvektoren dieser
Ebenen
Darstellung von Objekten in 2Darstellung von Objekten in 2--und 3und 3--dimensionalen dimensionalen
kartesischen kartesischen KoordinatensystemenKoordinatensystemen
Linie-Ebene-Schnitt
Durch Substituieren von 8s in die Geradengleichung
Schnittpunkt S = a + 8s A b
Darstellung von Objekten in 2Darstellung von Objekten in 2--und 3und 3--dimensionalen dimensionalen
kartesischen kartesischen KoordinatensystemenKoordinatensystemen
Ebene-Ebene-Schnitt
na x nb = r
P = (x, y, z)Y l = P + 8 A r
Darstellung von Objekten in 2Darstellung von Objekten in 2--und 3und 3--dimensionalen dimensionalen
kartesischen kartesischen KoordinatensystemenKoordinatensystemen
Konvexe und nicht-konvexe Polygone und deren Flächeninhalte
Unterteilung der Polydonfläche in Dreiecke
Die Formel gilt sowohl für konv. Als auch nicht-konvexe Polygone
Darstellung von Objekten in 2Darstellung von Objekten in 2--und 3und 3--dimensionalen dimensionalen
kartesischen kartesischen KoordinatensystemenKoordinatensystemen
Geometrische Transformationen im 2Geometrische Transformationen im 2--und 3und 3--dimensionalen dimensionalen KoordinatensystemKoordinatensystem
Geometrische Transformationen Geometrische Transformationen im 2im 2--dimensionalen dimensionalen KoordinatensystemKoordinatensystem
Translation
Zu jedem Punkt des Objekts den Verschiebungsvektor Addieren
Geometrische Transformationen Geometrische Transformationen im 2im 2-- und 3und 3--dimensionalen dimensionalen
KoordinatensystemKoordinatensystem
Skalierung (Streckung oder Stauchung)
Skalare Multiplikation der Ortsvektore des Objekts mit dem Skalierungsfaktor
Uniforme und nicht-uniforme Skalierung
Geometrische Transformationen Geometrische Transformationen im 2im 2-- und 3und 3--dimensionalen dimensionalen
KoordinatensystemKoordinatensystem
Rotation
Polarkoordinaten des Punktes P
Koordinaten des neuen Punktes
Rotationsmatrix und Berechnung der Koordinaten des neuen Punktes
Geometrische Transformationen Geometrische Transformationen im 2im 2-- und 3und 3--dimensionalen dimensionalen
KoordinatensystemKoordinatensystem
Transformationen im 3-dimensionalen Raum in homogenen Koordinaten (nächstes Kapitel)
Translation
Rotation um die z-Achse
Geometrische Transformationen Geometrische Transformationen im 2im 2-- und 3und 3--dimensionalen dimensionalen
KoordinatensystemKoordinatensystem
Rotation um die x-Achse
Rotation um die y-Achse
Geometrische Transformationen Geometrische Transformationen im 2im 2-- und 3und 3--dimensionalen dimensionalen
KoordinatensystemKoordinatensystem
Skalierung
Geometrische Transformationen Geometrische Transformationen im 2im 2-- und 3und 3--dimensionalen dimensionalen
KoordinatensystemKoordinatensystem
Rotation um eine beliebige Achse um einen Winkel Θ
Rotationsmatrix:
R = TA @ Ry" @ Rx-$ @ Rz2 @ Rx$ @ Ry-" @ T-A
Geometrische Transformationen Geometrische Transformationen im 2im 2-- und 3und 3--dimensionalen dimensionalen
KoordinatensystemKoordinatensystem
Homogene Koordinaten und Homogene Koordinaten und Matrixdarstellung von Matrixdarstellung von
Transformationen in homogenen Transformationen in homogenen KoordinatenKoordinaten
Homogene Koordinaten und Homogene Koordinaten und Matrixdarstellung von Matrixdarstellung von Transformationen in Transformationen in
homogenen Koordinatenhomogenen Koordinaten
Homogenes Koordinatensystem
dem zweidimensionalen kartesischen Vektorraum mit x-und y-Koordinaten entspricht ein dreidimensionaler homogener (x,y,w)-Vektorraum
Homogene Koordinaten und Homogene Koordinaten und Matrixdarstellung von Matrixdarstellung von Transformationen in Transformationen in
homogenen Koordinatenhomogenen Koordinaten
Translation
Translationsmatrix
Homogene Koordinaten und Homogene Koordinaten und Matrixdarstellung von Matrixdarstellung von Transformationen in Transformationen in
homogenen Koordinatenhomogenen Koordinaten
Rotation
Homogene Koordinaten und Homogene Koordinaten und Matrixdarstellung von Matrixdarstellung von Transformationen in Transformationen in
homogenen Koordinatenhomogenen Koordinaten
Skalierung
Homogene Koordinaten und Homogene Koordinaten und Matrixdarstellung von Matrixdarstellung von Transformationen in Transformationen in
homogenen Koordinatenhomogenen Koordinaten
Spiegelung
durch Verwendung negativer
Skalierungsfaktoren
z.B. Spiegelung an der x-Achse:
mit Fx=1 , Fy=-1
Homogene Koordinaten und Homogene Koordinaten und Matrixdarstellung von Matrixdarstellung von Transformationen in Transformationen in
homogenen Koordinatenhomogenen Koordinaten
Projektion
Skalierungsfaktor=0
z.B. Fx=1, Fy=0 : Projektion an der
x-Achse
Homogene Koordinaten und Homogene Koordinaten und Matrixdarstellung von Matrixdarstellung von Transformationen in Transformationen in
homogenen Koordinatenhomogenen Koordinaten
Scherung
Translation der x (y)-Koordinate
proportional zur y (x)-Koordinate
Homogene Koordinaten und Homogene Koordinaten und Matrixdarstellung von Matrixdarstellung von Transformationen in Transformationen in
homogenen Koordinatenhomogenen Koordinaten
GliederungGliederung
Wie es weiter gehtWie es weiter geht
• Abstände
• Punkt-Tests
• Koordinatentransformationen
• View Frustum
• Projektionen
AbständeAbstände
AbständeAbstände
zwischen:
• Punkt – Ebene
• Gerade – Ebene
• Ebene – Ebene
• Punkt – Gerade
• Gerade – Gerade
trivial, wenn ein Schnittpunkt existiert
Punkt Punkt -- EbeneEbene
AbständeAbstände
n – Normalvektor |n|=1
HNF: n·p = d mit p∈R3
n
n·d
Ebene
0
q
Punkt Punkt -- EbeneEbene
AbständeAbstände
n – Normalvektor |n|=1
HNF: n·p = d mit p∈R3
n
n·d
Ebene
0
q
q‘
r
Punkt Punkt -- EbeneEbene
AbständeAbstände
n – Normalvektor |n|=1
HNF: n·p = d mit p∈R3
Abstand des Punktes q von der Ebene: n·q - d
n
n·d
Ebene
0
q
q‘
r
Punkt Punkt -- EbeneEbene
AbständeAbstände
Damit dann auch
• Gerade – Ebene(ein Punkt der Geraden wählen)
• Ebene – Ebene( ein Punkt der Ebene wählen)
berechenbar
Gerade Gerade -- GeradeGerade
AbständeAbstände
v x w
||v x w||
na
b = dd.h. wir konstruieren eine Fläche, senkrecht zum Normalenvektor von a, in der b liegt
v
bw
Gerade Gerade -- GeradeGerade
AbständeAbstände
v x w
||v x w||
na
b = dd.h. wir konstruieren eine Fläche, senkrecht zum Normalenvektor von a, in der b liegt
v
bw
und können so den Abstand von azu dieser Ebene bestimmen
n
PunktPunkt--TestsTests
PunktPunkt--TestsTests
liegt ein Punkt in:
• einem Rechteck ?
• einem Polygon ?
• einem Kreis ?
• in einer Kugel?
Punkt im Polygon?Punkt im Polygon?
PunktPunkt--TestsTests
P
ϕi
Pi+1Pi
Pn
P…
P…
P1
P0
P liegt im Polygon, wenn:
Summe aller ϕi = 2π
Punkt im Polygon?Punkt im Polygon?
PunktPunkt--TestsTests
P
ϕi
Pi+1Pi
Pn
P…
P…
P1
P0
P liegt im Polygon, wenn:
Summe aller ϕi = 2π
P liegt nicht im Polygon, wenn:
Summe aller ϕi = 0
Punkt im Kreis?Punkt im Kreis?
PunktPunkt--TestsTests
P
0
rK
Kreis um Mittelpunkt K mit Radius r
Punkt P
Punkt im Kreis?Punkt im Kreis?
PunktPunkt--TestsTests
P
0
rK0K
0P
0P - 0K
P liegt im Kreis, wenn:
r < ||0P - 0K||
Punkt im Kreis?Punkt im Kreis?
PunktPunkt--TestsTests
P
0
rK0K
0P
0P - 0K
P liegt im Kreis, wenn:
r < ||0P - 0K||
P liegt nicht im Kreis, wenn:
r > ||0P - 0K||
Punkt im Kreis?Punkt im Kreis?
PunktPunkt--TestsTests
P
0
rK0K
0P
0P - 0K
P liegt im Kreis, wenn:
r < ||0P - 0K||
P liegt nicht im Kreis, wenn:
r > ||0P - 0K||
natürlich auf 3D erweiterbar � Kugel
Homogene KoordinatenHomogene Koordinaten
• zusätzliche Dimension einführen (n� n+1)
P(x, y, z) = P(x·wp, y·wp, z·wp, wp)
= P(xp, yp, zp, wp)
• indem man wp= 1 setzt, ist die Rückrechnung einfach
• Vorteil zu kartesischen Koordinaten:
• Translation durch Matrixmultiplikation beschreibbar
• mehrere aufeinanderfolgende Transformationen
können in einer Matrix beschrieben werden
KoordinatenKoordinaten
Homogene Koordinaten Homogene Koordinaten -- BeispielBeispiel
Statt in kartesischen Koordinaten:
Äquivalent in homogenen Koordinaten:
KoordinatenKoordinaten
KoordinatenKoordinaten
KoordinatenKoordinaten
Verschiedene Arten, bzw. Bezugssysteme:
• Lokale Koordinaten
• Welt-Koordinaten
• Kamera-Koordinaten
• Bild-Koordinaten
Können in einander transformiert werden
Lokale KoordinatenLokale Koordinaten
KoordinatenKoordinaten
• Auch Objekt- bzw. Modell- bzw. Master-Koordinaten
• Relativ zum Objekt definiert
y
x
z
WeltWelt--KoordinatenKoordinaten
KoordinatenKoordinaten
• Wurzel für die Szenenhierarchie
• unabhängig
• Beschreibt Anordnung und Größe der Szenenobjekte
KameraKamera--KoordinatenKoordinaten
KoordinatenKoordinaten
• Auch Augen-Koordinaten genannt
• Innerhalb der Welt definiert
• Zentrum ist Augpunkt
• Blickrichtung fokussiert den View Reference Point
• Definiert das View Frustum
BildBild--KoordinatenKoordinaten
KoordinatenKoordinaten
• Anordnung der Bildkomponenten
• durch Projektion 3D � 2D
BildBild--KoordinatenKoordinaten
KoordinatenKoordinaten
• Anordnung der Bildkomponenten
• durch Projektion 3D � 2D
BildBild--KoordinatenKoordinaten
KoordinatenKoordinaten
• Anordnung der Bildkomponenten
• durch Projektion 3D � 2D
KoordinatentransformationenKoordinatentransformationen
KoordinatenKoordinaten
Komplementär zu Transformationen von Objekten
Objekte bleiben fest, Koordinatensystem ändert seine Lage und eventuell seine Form
Zum Beispiel müssen wir
• Lokale Koordinaten in Welt-Koordinaten
• Welt-Koordinaten in Kamera-Koordinaten
überführen
ViewingViewing--PipelinePipeline
KoordinatenKoordinaten
• Lokale Koordinaten � Welt-Koordinaten
(Translation, Rotation, Skalierung)
• Welt-Koordinaten � Kamera-Koordinaten
Koordinatensystemwechsel:
xy-Ebene = Bildebene
Auge liegt bei z = VPD
• Kamera-Koordinaten � Normalisierte Projektions-Koor.
View Frustum auf Einheitswürfel abbilden
• Norm. Projektions-Koordinaten � Bild-Koordinaten
Lokale Koordinaten Lokale Koordinaten �� WeltWelt--KoordinatenKoordinaten
KoordinatenKoordinaten
• Objekte liegen als Prototypen vor
• Definitionspunkte unabhängig von späterer Größe und Position im Welt-Koordinatensystem
• Ursprung des Lokalen Koordinatensystems im Zentrum des Objektes
• Beim Modeling erhalten Objekte im Welt-Koordinatensystem ihre individuelle Größe, Orientierung und Position durch:
Skalierung, Rotation und Translation
Lokale Koordinaten Lokale Koordinaten �� WeltWelt--KoordinatenKoordinaten
1. Modell-Koordinatensystem liegt deckungsgleich zum Weltkoordinatensystem
2. Modell-Koordinatensystem durch schrittweise Ausführung von Einzeltransformationen in die gewünschte räumliche Lage bringen
3. Objekt im Weltkoordinatensystem abbilden
4. Objektkoordinaten aller Objektpunkte mit den Transformationsmatrizen multiplizieren
KoordinatenKoordinaten
Lokale Koordinaten Lokale Koordinaten �� WeltWelt--KoordinatenKoordinaten
KoordinatenKoordinaten
2) Rotation R2um y-Achse
3) Rotation R3um x-Achse
1) Rotation R1um z-Achse
Sei Q(x, y, z, 1) Punkt eines Objektes:
(QWC)T = R3·R2·R1·(QMC)T
ViewView FrustumFrustum
ProjektionenProjektionen
Front-, Back-Plane
• damit nahe Objekte nicht ganze Szene verdecken
• entfernte Objekte erscheinen ganz klein
ProjektionenProjektionen
ProjektionenProjektionen
Abbildung eines Vektors x aus einem n-Dimensionalen Vektorraum X auf einen Vektor aus einem m-Dimensionalen Unterraum U
Uns beschäftigen Abbildungen des 3D-Raumes auf eine Ebene � planare Projektionen (n=3, m=2)
Projektionen Projektionen -- ÜbersichtÜbersicht
ProjektionenProjektionen
Projektionen
planare geometrische nicht planare
Zentral Parallel
Einpunkt Zweipunkt Dreipunkt orthogonale schiefe
Grund, Auf, Seitenriß Normal-axometrische
isometrisch dimetrisch trimetrisch
Zentralprojektion Zentralprojektion -- EigenschaftenEigenschaften
ProjektionenProjektionen
• auch Perspektivische Projektion genannt
Zentralprojektion Zentralprojektion -- EigenschaftenEigenschaften
ProjektionenProjektionen
• auch Perspektivische Projektion genannt
• wir kennen das Projektionszentrum Z (Augpunkt)
Zentralprojektion Zentralprojektion -- EigenschaftenEigenschaften
ProjektionenProjektionen
• auch Perspektivische Projektion genannt
• wir kennen das Projektionszentrum Z (Augpunkt)
• Verzerrung: parallele Linien sehen nicht immer so aus
Zentralprojektion Zentralprojektion -- EigenschaftenEigenschaften
ProjektionenProjektionen
• auch Perspektivische Projektion genannt
• wir kennen das Projektionszentrum Z (Augpunkt)
• Verzerrung: parallele Linien sehen nicht immer so aus
• räumlicher Eindruck durch perspektivische Verkürzung
Zentralprojektion Zentralprojektion -- EigenschaftenEigenschaften
ProjektionenProjektionen
• Winkel bleiben nur erhalten, wenn die Geraden parallel zur Bildebene sind
Zentralprojektion Zentralprojektion -- EigenschaftenEigenschaften
ProjektionenProjektionen
• Winkel bleiben nur erhalten, wenn die Geraden parallel zur Bildebene sind
• Parallele Linien schneiden sich in der Unendlichkeit
EinEin--PunktPunkt--PerspektivePerspektive
ProjektionenProjektionen
• Ein Fluchtpunkt F (nur Projektionszentrum)
ZweiZwei--PunktPunkt--PerspektivePerspektive
ProjektionenProjektionen
• zwei Fluchtpunkte F1 und F2 (i .d.R. auf Augenhöhe)
DreiDrei--PunktPunkt--PerspektivePerspektive
ProjektionenProjektionen
• Drei Fluchtpunkte F1, F1 und F3
• zusätzlicher Fluchtpunkt für vertikale Kanten (Frosch- / Vogelperspektive)
• nur geringe Realitätsverbesserung
ParallelprojektionenParallelprojektionen
ProjektionenProjektionen
• Abstand vom Projektionszentrum zur Projektionsebene ist unendlich � parallele Projektionslinien
� Spezialfall der Zentralprojektion
• spiegelt exakte Maße wider
• parallele Linien bleiben parallel
• nur Winkel, die parallel zur Projektionsebene sind, bleiben erhalten
• weniger realistisch (Mangel an perspektivischer Verkürzung)
Orthogonale ParallelprojektionOrthogonale Parallelprojektion
ProjektionenProjektionen
Projektionsrichtung = Normale der Projektionsebene(oder umgekehrt)
� Projektionsstrahlen stehen senkrecht zur Bildebene
AufAuf--, Grund, Grund--, , SeitenrißSeitenriß
Orthogonale ProjektionenOrthogonale Projektionen
• oft für technische Zeichnungen verwendet
• Entfernungen & Winkel können abgemessen werden
• schwierige Interpretation � nicht immer Rekonstruierbar
NormalaxonometrischeNormalaxonometrische ProjektionenProjektionen
Orthogonale ProjektionenOrthogonale Projektionen
• Isometrische Projektion
• Schnittpunkte der Bildebene mit den Hauptachsen sind alle gleich weit vom Ursprung entfernt
• alle Koordinaten werden gleich verkürzt
NormalaxonometrischeNormalaxonometrische ProjektionenProjektionen
Orthogonale ProjektionenOrthogonale Projektionen
• Dimetrische Projektion
• Zwei Koorinatenachsen werden in der gleichen Entfernung vom Ursprung geschnitten
• gleiche Verkürzung auf zwei Achsen
NormalaxonometrischeNormalaxonometrische ProjektionenProjektionen
Orthogonale ProjektionenOrthogonale Projektionen
• Trimetrische Projektion
• Alle Koorinatenachsen werden in unterschiedlicherEntfernung vom Ursprung von der Bildebene geschnitten
• alle Koordinaten werden unterschiedlich verkürzt