computergraphik grundlagen - mttcs. · pdf file2 inhalt – lernziele 1. geometrische...
TRANSCRIPT
Computergraphik Grundlagen
VI. Geometrische Modellierung
Prof. Stefan Schlechtweg Hochschule Anhalt
Fachbereich Informatik
2
Inhalt – Lernziele
1. Geometrische Modlle Geometrie Topologie Forderungen an
Geometrierepräsentationen Klassifikation von Modellen Geometrische Modellierung
2. Boundary Representations Polygonale Modelle Freiformkurven und –flächen Umwandlung Freiformflächen in
Polygonnetze 3. Kameramodell 4. Lichtquellen 5. Zusammenfassung
Begrifflichkeiten aus dem Bereich der geometrischen Modellierung kennen
Einordnung der verschiedenen Modellierungstechniken vornehmen können
Polygonnetze als wichtigste Modellklassen kennen
Freiformkurven und –flächen überblicksartig kennen
Parameter der Beschriebung von Lichtquellen und Kameras kennen
Bezug der Modellierung zur Rendering-Pipeline herstellen können
3
lokal → Welt
Lokale Koordinaten
Modellierung der Geometrie
einzelner Objekte
Weltkoordinaten
Plazierung der Objekte
Plazierung der Lichtquellen
Plazierung der Kamera
Beleuchtungs- berechnung
Kamerakoordinaten
Entfernen verdeckter Rückseiten
Normalisierte Projektionskoordinaten
Clipping gegen Sichtkörper
(Normalisierte) Bildschirm- koordinaten
Rasterkoordinaten
Entfernen verdeckter Modellteile
Shading
Entfernen verdeckter Modellteile Tr
ansf
orm
atio
n in
Kam
erak
oord
inat
en
Viewing-Transformation
Proj
ektio
n
Rastertransformation
Rasterung
4
1. Geometrische Modelle
Definition: Darstellung von 3D-Objekten durch mathematisch-analytische Methoden am Computer
Grundlage für – Berechnung geometrischer Eigenschaften
(Volumen, ...) – graphische Darstellung – weitergehende graphische Anwendungen – Berechnung des physikalisch-geometrischen
Verhaltens der Körper nach einer weiteren Attributierung mit physikalischen Eigenschaften bzw. Materialparametern
5
1. Geometrische Modelle
Geometrische Objekte sind Objekte der realen oder theoretischen Welt, die durch ihre geometrischen und topologischen Eigenschaften beschrieben sind: – Geometrische Eigenschaften beschreiben die präzise
Form eines Objekts und die konkrete Lage in einem Bezugssystem.
– Topologische Eigenschaften definieren die fundamentale Objektstruktur, die bei kontinuierlichen Transformationen invariant ist.
6
1. Geometrische Modelle 1.1. Geometrie
Die Geometrie (griech. „Landmessung“) ist ein Teilgebiet der Mathematik. – Die Euklidische Geometrie ist die klassische, uns vertraute Geometrie der Ebene
oder des Raums, die schon Euklid in „Den Elementen“ dargelegt hat: Elementare Konstrukte sind: Punkt, Linie, Gerade, Ebene, Winkel, Parallelen u.a. Sie ist essentiell für die Computergraphik
– Affine Geometrie: Es gilt zwar das euklidische Parallelenaxiom, aber Abstand und Winkel haben keine Bedeutung. Inbegriff der unter affinen Abbildungen invarianten geometrischen Eigenschaften
– Projektive Geometrie: Zu jeder Klasse paralleler Geraden kommt ein so genannter unendlich ferner Punkt hinzu; alle diese Punkte bilden die unendlich ferne Gerade. Zwei Geraden schneiden sich stets in einem Punkt: Zwei parallele Geraden schneiden sich in ihrem gemeinsamen Fernpunkt, eine gewöhnliche Gerade und die Ferngerade schneiden sich im Fernpunkt der Geraden.
– Nichteuklidische Geometrie: hier gilt das Parallelenaxiom nicht Man unterscheidet elliptische und hyperbolische Geometrien.
7
Modelle werden über geometrische Verhältnisse zwischen Punkten, Linien, Flächen definiert
geometrische Verhältnisse entsprechen dem Axion-System der zugrundeliegenden Geometrie
Verschiedene Beschreibungen führen zu verschiedenen Modellierungssystemen bzw. Modelltypen
1. Geometrische Modelle 1.1. Geometrie
8
untersucht die Eigenschaften geometrischer Körper (d. h. topologischer Räume), die durch Verformungen mit Homöomorphismen (Dehnen, Stauchen, Verbiegen, Verzerren, Verdrillen ) nicht verändert werden.
wichtigste Begriffe hier – Mannigfaltigkeit: ein topologischer Raum, der lokal einem
gewöhnlichen Euklidischen Raum Rn gleicht. Im Ganzen muss die Mannigfaltigkeit nicht einem Rn entsprechen (nicht zu ihm homöomorph sein).
– Genus: Geschlecht = Anzahl der „Löcher“ in einer Fläche bzw. definiert als die maximale Anzahl von möglichen Schnitten, so dass die Fläche nach dem Schnitt immer noch zusammenhängend ist.
1. Geometrische Modelle 1.2. Topologie
10
1. Geometrische Modelle 1.3. Forderungen an Geometrierepräsentationen
Mächtigkeit (sinnvolle Menge von Objekten modellierbar) Eindeutigkeit (Was wird repräsentiert? Jeder Körper hat
genau eine Darstellung.) Vollständigkeit Genauigkeit (Approximation des Objektes) Effizienz (Darstellung, Speicherplatz) Abgeschlossenheit (Transformationen, Boolesche
Mengenoperationen) weitere Forderungen:
– unmöglich, eine ungültige Repräsentation herzustellen – einfach, eine gültige Repräsentation herzustellen
11
2D-Modelle – beschreiben geometrische Objekte in 2D – werden für Anwendungen in der Ebene verwendet
(Grundrisse, ebene Pläne etc.), bei denen die 3. Dimension entweder nicht gegeben bzw. nicht relevant ist.
– Werden 3D-Objekte mit 2DModellen dargestellt, sind Zusatzinformationen notwendig, z.B.:
• zusätzliche Angabe von Tiefenwerten oder • Verwendung mehrerer 2DModelle (Risse) zur Beschreibung
eines 3D-Objekts.
1. Geometrische Modelle 1.4. Klassifikation von Modellen
12
2,5D-Modelle – modellieren 3D-Objekte durch eine Beschreibung in 2D und – eine zusätzliche Angabe für die Interpretation in 3D. – Die Zusatzinformation kann z.B ein Verschiebevektor oder eine
Rotationsachse sein. – Die 2D- Objekte werden entsprechend dieser Angaben im 3D-Raum
rotiert oder verschoben. Sie überstreichen dabei einen gewissen Teilraum in 3D (sogenannte Rotations- oder Translationskörper).
– Dieser entspricht dem gewünschten 3D-Objekt.
1. Geometrische Modelle 1.4. Klassifikation von Modellen
13
3D-Modelle – definieren Objekte in 3D durch Abstraktion der
wesentlichen geometrischen Eigenschaften. – Wir unterscheiden 3 verschiedene Modellformen:
• Drahtmodelle: beschreiben Objekte durch Konturlinien • (Ober-)Flächenmodelle: beschreiben Objekte durch
Randflächen • Volumenmodelle: beschreiben Objekte als Körper
1. Geometrische Modelle 1.4. Klassifikation von Modellen
14
1. Geometrische Modelle 1.4. Klassifikation von Modellen
Volumenmodelle
• Primitive Instancing • Constructive Solid Geometry • Sweep-Körper • Raumunterteilung – Zelldekomposition – Voxelmodelle – Octrees – BSP-Trees • ...
Oberflächenmodelle
High-Level Datenstrukturen
• Polygonnetze • Freiformflächen • Implizite Oberflächen • ...
• Szenengraphen • Skelette • applikationsspezifisch • ...
15
1. Geometrische Modelle 1.5. Geometrische Modellierung
Quelle: Holger Theisel, Uni Magdeburg, Vorlesung Computergraphik
16
2. Boundary Representations
Eine Boundary Representation (b-rep) ist eine Graphenstruktur, die begrenzende Oberflächenteile eines Körpers und ihre Lage zueinander topologisch beschreibt.
Im Gegensatz zu anderen Körpermodellen, sind Flächen, Kanten und Punkte explizit im Modell vorhanden.
Eine Boundary Representation beschreibt ein Objekt durch seine Hülle
17
2. Boundary Representations
B-Rep baut Körper aus folgenden Elementen auf: – Schale (shell): ist eine aus Einzelteilen (Facetten)
zusammengesetzte, zusammenhängende Oberfläche. – Fläche (Facette): ist begrenzt von einer oder mehreren
Konturen. – Kontur (loop): ist eine abgeschlossene orientierte Folge von
Kanten – Kante (edge): ist ein orientiertes Geraden- (Kurven-) Stück,
begrenzt durch zwei – Knoten (vertices).
19
2. Boundary Representations 2.1. Polygonale Modelle
Ein Objekt wird durch ein Gitter aus polygonalen Facetten angenähert und beschrieben.
Original-Objekt Oberflächen polygonale Oberfläche
Eckpunkte, Kanten Polygone
20
2. Boundary Representations 2.1. Polygonale Modelle
Komponenten eines polygonalen Modells: – Position der Eckpunkte (Knoten, Vertices) – Informationen über en Zusammenhang der Eckpunkte
– Kanten, – Flächen – zusätzliche Daten, wie Normalen,
Ebenengleichungen, . . . Repräsentation
– Wahl der Repräsentation von den auszuführenden Operationen beeinflußt
– es gibt keine „100%ig“ beste Repräsentation
21
2. Boundary Representations 2.1. Polygonale Modelle
Ein geometrischer Graph G = (V,E) ist ein geordnetes Paar (V,E) wobei V eine nichtleere, endliche Teilmenge des R3 und E eine Menge von Verbindungsstrecken von Punkten aus V ist.
Ein Polygon ist ein geometrischer Graph G = (V,E) mit – V = v0, . . . , vn−1 – E = (v0, v1), (v1, v2), . . . , (vn−2, vn−1)
Ein Polygon heißt – eben, falls alle Kanten in einer Ebene liegen, – geschlossen, falls v0 = vn−1 – einfach, falls gilt: Der Schnitt zweier Kanten ist entweder leer
oder eine Ecke und jede Ecke gehört zu höchstens zwei Kanten.
22
2. Boundary Representations 2.1. Polygonale Modelle
Ein Polygonnetz ist eine Menge M von endlich vielen, geschlossenen,
ebenen und einfachen Polygonen mit folgenden Eigenschaften: – Die inneren Polygongebiete von je zwei Polygonen aus M haben
keine gemeinsamen Punkte. – Je zwei Polygone aus M haben entweder keinen Punkt oder eine
Ecke oder eine ganze Kante gemeinsam. – Jede Kante eines Polygons aus M gehört zu höchstens zwei
Polygonen aus M. – Die Menge aller Kanten, die nur zu einem Polygon aus M
gehören ist entweder leer (M heißt dann geschlossen) oder bildet selbst ein einziges, geschlossenes, einfaches Polygon
24
2. Boundary Representations 2.1. Polygonale Modelle 2.1.1. Repräsentation von Polygonnetzen
Repräsentation von Polygonnetzen – explizite Repräsentation – Zeiger in eine Knotenliste – Zeiger in eine Kantenliste – weitere und spezielle Repräsentationen, wie
z. B. winged edge Repräsentation
25
P1 (0,0,0)-(1,0,0)-(1,1,0)-(0,1,0) P2 (0,0,0)-(0,0,-1)-(0,1,-1)-(0,1,0) P3 (0,0,0)-(1,0,0)-(1,0,-1)-(0,0,-1) P4 (1,0,0)-(1,0,-1)-(1,1,-1)-(1,1,0) P5 (0,1,0)-(1,1,0)-(1,1,-1)-(0,1,-1) P6 (0,0,-1)-(1,0,-1)-(1,1,-1)-(0,1,-1)
2. Boundary Representations 2.1. Polygonale Modelle 2.1.1. Repräsentation von Polygonnetzen
explizite Repräsentation: Angabe der Koordinaten der Eckpunkte – jeweils x-, y-, z-Koordinatentripel – Verbindung der Eckpunkte zu einem Polygon wird implizit hergestellt:
• Verbinde den i-ten Punkt mit dem (i+1)-ten • Verbinde den letzten mit dem ersten zum Schließen des Polygons
26
2. Boundary Representations 2.1. Polygonale Modelle 2.1.1. Repräsentation von Polygonnetzen
sehr aufwendige und fehleranfällige Art der Modellierung nur sinnvoll für kleinere Objekte Probleme:
– hoher Aufwand bei manueller Erstellung – Daten werden mehrfach gespeichert
P1 (0,0,0)-(1,0,0)-(1,1,0)-(0,1,0) P2 (0,0,0)-(0,0,-1)-(0,1,-1)-(0,1,0) P3 (0,0,0)-(1,0,0)-(1,0,-1)-(0,0,-1) P4 (1,0,0)-(1,0,-1)-(1,1,-1)-(1,1,0) P5 (0,1,0)-(1,1,0)-(1,1,-1)-(0,1,-1) P6 (0,0,-1)-(1,0,-1)-(1,1,-1)-(0,1,-1)
27
v1 (0,0,0) v2 (1,0,0) v3 (1,1,0) v4 (0,1,0) v5 (0,0,-1) v6 (1,0,-1) v7 (1,1,-1) v8 (0,1,-1)
2. Boundary Representations 2.1. Polygonale Modelle 2.1.1. Repräsentation von Polygonnetzen
Zeiger in eine Knotenliste – x-, y-, z-Koordinatentripel aller Eckpunkte werden extra gespeichert – Verbindung der Eckpunkte zu einem Polygon wird über Indizes in die Liste der
Eckpunkte hergestellt: Merkmale
– speicherplatzsparend, da Knoten nur einmal gespeichert – einfache Transformationen – geteilte Kanten doppelt gespeichert
P1 1-2-3-4 P2 1-5-8-4 P3 1-2-6-5 P4 2-6-7-3 P5 4-3-7-8 P6 5-6-7-8
28
v1 (0,0,0) v2 (1,0,0) v3 (1,1,0) v4 (0,1,0) v5 (0,0,-1) v6 (1,0,-1) v7 (1,1,-1) v8 (0,1,-1)
2. Boundary Representations 2.1. Polygonale Modelle 2.1.1. Repräsentation von Polygonnetzen
Zeiger in eine Kantenliste – x-, y-, z-Koordinatentripel aller Eckpunkte werden extra gespeichert – Kanten werden über Indizes in die Liste der Eckpunkte gespeichert – Polygone über Kanten definiert
P1 1-2-3-4 P2 5-9-6-4 P3 6-3-7-10 P4 7-2-8-11 P5 8-1-5-12 P6 9-10-11-12
e1 (4,8,a,b) e2 (8,7,a,c) e3 (7,3,a,d) e4 (3,4,a,e) e5 (4,1,b,e) e6 (3,2,e,d) e7 (7,6,d,c) e8 (8,5,c,b) e9 (1,2,e,f) e10 (2,6,d,f) e11 (6,5,c,f) e12 (5,1,b,f)
29
2. Boundary Representations 2.1. Polygonale Modelle 2.1.2. Zusammenfassung
Vorteile polygonaler Modelle – relativ einfache Erzeugung – einfache Darstellung der Objekte – einfache Handhabung bei Berechnungen – weit verbreitet – „kleinster gemeinsamer Nenner“ bei 3D-
Modellen
Nachteile polygonaler Modelle – Polygonale Modelle approximieren die Oberfläche eines
„runden“ Objektes nur – Je genauer diese Approximation sein soll, um so mehr Polygone
werden benötigt – speicheraufwendig
30
2. Boundary Representations 2.2. Freiformkurven und -flächen
Linienzüge bzw. Polygone sind stückweise lineare Approximationen für Kurven bzw. Flächen. – sehr hohe Anzahl an Eckpunkten für genaue
Repräsentation notwendig – interaktive Manipulation sehr schwierig
→ Suche nach kompakteren und einfacher zu manipulierenden Repräsentationen
→ stückweise polynomiale Kurven bzw. Flächen
31
explizite Repräsentation: y = f(x); z = f(x) – nicht mehrere Werte für ein x möglich – nicht rotationsinvariant – keine Kurven mit vertikalen Tangenten beschreibbar
implizite Repräsentation: f(x, y, z) = 0 – Gleichungen liefern u.U. zu viele Lösungen (Kreis →
Halbkreis) – aber: effiziente Bestimmung, ob Punkt auf Kurve liegt
2. Boundary Representations 2.2. Freiformkurven und -flächen
32
parametrische Repräsentation: x = f(t); y = f(t); z = f(t) – Darstellung einer Kurve durch eine stückweise polynomiale
Kurve – jedes Segment der Kurve durch drei Funktionen x, y und z
gegeben – diese drei Funktionen: Polynome in t – jede Steigung erlaubt – stückweise polynomiale
Approximation einer Kurve
2. Boundary Representations 2.2. Freiformkurven und -flächen
33
2. Boundary Representations 2.2. Freiformkurven und –flächen 2.2.1. Interpolation von Kurven
gegeben: Punktfolge p0, p1, ..., pn ∈ ℜ3
gesucht: Kurve in Parameterdarstellung, die die Punktfolge durchläuft Jedem Kurvenpunkt pi wird ein Parameterwert ti zugeordnet mit
– ti< ti+1 ( i = 0, ..., n-1), – t0 definiert den Anfang des gewünschten Parameterintervalls und – tn das Ende.
Eine Kurve x(t) über einem Parameterintervall lässt sich darstellen durch
hierbei gilt: – x(ti)=pi
– fi bilden eine Basis und – ai ∈ ℜ3
34
2. Boundary Representations 2.2. Freiformkurven und –flächen 2.2.2. Bézier-Kurven
Basis sind Bernstein-Polynome: hier ist:
– t Parameter (0 ≤ t ≤ 1) – n Grad der Bezierkurve – bi Kontrollpunkte aus ℜ2 oder ℜ3 mit (0 ≤ i ≤ 1) – Bi
n(t) Bernsteinpolynom vom Grad n über dem Intervall [0, 1]
35
Bernstein-Polynome
2. Boundary Representations 2.2. Freiformkurven und –flächen 2.2.2. Bézier-Kurven
36
2. Boundary Representations 2.2. Freiformkurven und –flächen 2.2.2. Bézier-Kurven
Bézier-Kurven verschiedenen Grades
Grad 2
Grad 5
Grad 15
37
2. Boundary Representations 2.2. Freiformkurven und –flächen 2.2.2. Bézier-Kurven
Eigenschaften von Bézierkurven: – Grad: Der Grad der Bézierkurve ist abhängig von der Zahl der Polygonpunkte (n Punkte ergeben den Grad
n -1). – Globale Modifikationen: Die Modifikation eines Polygonpunktes wirkt sich global auf die Bézierkurve aus. – Einfluß von Kontrollpunkten: bi hat den größten Einfluß auf x(t) bei t = i/n. – Symmetrie: Es ist unerheblich, ob wir die Bézierpunkte mit b0, b1, ..., bn oder mit bn, bn-1, ..., b0 bezeichnen.
Die Kurven stimmen überein, sie werden nur in unterschiedlicher Richtung durchlaufen. – Affine Invarianz: Die Bézierkurve ist unter affinen Abbildungen invariant. – Verhalten in den Eckpunkten: Kontrollpolygon und Bézierkurve stimmen in Anfangs- und Endpunkt überein.
Das erste und letzte Segment des Kontrollpolygons verläuft in Anfangs- und Endpunkt tangential zur Bézierkurve. Die inneren Bézierpunkte werden i.allg. nur approximiert.
– Beschränkte Schwankung (variation diminishing property): Keine Gerade schneidet die Bézierkurve öfter als das entsprechende Kontrollpolygon.
– Graderhöhung: Bei fortgesetzter Graderhöhung konvergiert das Kontrollpolygon gegen die Bézierkurve. – Konvexe-Hüllen-Eigenschaft: Eine ebene Bézierkurve liegt ganz innerhalb der konvexen Hülle des
zugehörigen Kontrollpolygons.
38
Bei komplexen Formen wird eine größere Zahl von Bézierpunkten benötigt. Mit jedem Bézierpunkt erhöht sich der Grad um 1.
Um den Grad niedrig zu halten und trotzdem keine Begrenzung bezüglich der Kontrollpunkte zu haben, ist es notwendig, einzelne Bézier-Kurven-Elemente aneinander zu fügen.
So erhalten wir eine Bézier-Spline-Kurve. Benachbarte Spline-Elemente müssen dieselbe Ordnung haben und gewisse
Anschlußbedingungen einhalten, um einen stetigen Übergang zu garantieren. Bei einer kollinearen Ausrichtung der Anschlußkanten der Kontrollpolygone ist ein
G1-stetiger Übergang garantiert
2. Boundary Representations 2.2. Freiformkurven und –flächen 2.2.3. Bézier-Spline-Kurven
39
2. Boundary Representations 2.2. Freiformkurven und –flächen 2.2.4. Übergangs-Bedingungen und Stetigkeit
geometrische Stetigkeit beschreibt bei einer zusammengesetzten Kurve, wie ein Kurvenstück ins nächste übergeht
Abgeleitet aus mathematischen Bedingungen:
wenn Dann heißt der Übergang Das bedeutet geometrisch
f(b)=g(b) C0-stetig, d.h. die 0-te Ableitung ist am Übergang stetig
Kurve macht keinen Sprung
f‘(b)=g‘(b) C1-stetig Gleiche Tangenten am Verbindungspunkt, Kurve hat keinen Knick
f‘‘(b)=g‘‘(b) C2-stetig gleiche Krümmung, gleicher Schmiegkreis am Verbindungspunkt
f(n)(b)=g(n)(b) C(n)-stetig je höher der Grad der Stetigkeit, desto „glatter“ (weniger bemerkbar) ist der Übergang.
40
2. Boundary Representations 2.2. Freiformkurven und –flächen 2.2.4. Übergangs-Bedingungen und Stetigkeit
Definition der geometrischen Stetigkeit:
wenn dann heißt der Übergang
der Endpunkt des einen Kurvenstücks mit dem Startpunkt des zweiten zusammenfällt
G0-stetig
der Übergang ist G0-stetig und die beiden Kurvenstücke am Verbindungspunkt den gleichen Tangenteneinheitsvektor haben
G1-stetig
der Übergang ist G1-stetig und die beiden Kurvenstücke am Verbindungspunkt • beide die Krümmung Null haben oder • die gleiche Krümmung und die gleiche Schmiegebene Haben
G2-stetig
41
zwei aneinander hängende Kurvensegmente sind: – G0 stetig ⇔ verbunden – G1 stetig ⇔ Steigungen stimmen überein (Tangentenvektoren) – Gn stetig ⇔ n-ten Ableitungen stimmen in Richtung überein – Cn stetig (parametrische/mathematische Stetigkeit) ⇔ n-te
Ableitungen stimmen in Richtung und Länge überein
2. Boundary Representations 2.2. Freiformkurven und –flächen 2.2.4. Übergangs-Bedingungen und Stetigkeit
42
Nachteile der Bézier-Kurven: – keine lokale Kontrollierbarkeit, d.h. die Veränderungen eines
Bézierpunktes verändern das ganze Segment. – hoher Polynomgrad, d.h. bei komplexen Formen wird eine größere Zahl
von Bézier-Punkten benötigt. Mit jedem Bézier-Punkt erhöht sich der Grad um 1.
Lösung: B-Spline-Kurven – B-Spline-Kurven verwenden als Basisfunktionen B-Spline-Funktionen. – günstige Eigenschaften:
• Der Grad des Polynoms kann unabhängig von der Anzahl der Kontrollpunkte gewählt werden und
• Kontrollpunkte bestimmen den Verlauf der Kurve nur in einem lokalen Bereich der gesamten Kurve.
2. Boundary Representations 2.2. Freiformkurven und –flächen 2.2.5. B-Spline-Kurven
43
2. Boundary Representations 2.2. Freiformkurven und –flächen 2.2.5. B-Spline-Kurven
Eine B-Spline-Funktion der Ordnung k ist ein segmentweise definiertes Polynom vom Grad (k -1), das an den Segmentübergängen im allgemeinen Ck-2 stetig ist.
Normalisierte B-Spline-Funktionen Nik der Ordnung k vom Grad k-1
lassen sich dann bei gegebenem Trägervektor T = (t0, t1, ..., tn+k) wie folgt definieren:
Das heißt: B-Spline-Funktionen der Ordnung k werden aus B-Spline-Funktionen der Ordnung k-1 abgeleitet.
44
2. Boundary Representations 2.2. Freiformkurven und –flächen 2.2.5. B-Spline-Kurven
B-Spline-Basisfunktionen vom Grad 0
Quelle: Stefan Lang, Skript zur Vorlesung Computerintensive Verfahren in der Statistik, Uni München, 2004
45
2. Boundary Representations 2.2. Freiformkurven und –flächen 2.2.5. B-Spline-Kurven
B-Spline-Basisfunktionen vom Grad 1 und 2
Quelle: Stefan Lang, Skript zur Vorlesung Computerintensive Verfahren in der Statistik, Uni München, 2004
46
2. Boundary Representations 2.2. Freiformkurven und –flächen 2.2.5. B-Spline-Kurven
B-Spline:
Konvexkombination der Kontrollpunkte Pi mit den B-Spline-Basisfunktionen Ni
Allgemeines Parameterintervall: t ∈ [a,b] Das Parameterintervall wird unterteilt in Abschnitte [t0,t1],
[t1,t2], …,[tn–1,tn] → Knotenvektor T = (t0,t1,t2,…,tn) (monoton steigend).
Wir verwenden T = (0, 1, 2, …, n) Uniforme Splines: Knoten äquidistant
47
2. Boundary Representations 2.2. Freiformkurven und –flächen 2.2.5. B-Spline-Kurven
Die „Mischfunktionen“ Ni haben einen endlichen Träger, d.h. im Beispiel wird der Punkt p(t) nur durch die Kontrollpunkte P0, P1, P2 beeinflusst
48
2. Boundary Representations 2.2. Freiformkurven und –flächen 2.2.5. B-Spline-Kurven
Beispiel: – gegeben sind 6 Kontrollpunkte P0, ... , P5. Man erhält
die folgenden Segmente: • Q3 gewichtet durch P0, P1, P2, P3 mit B0, B1, B2, B3 • Q4 gewichtet durch P1, P2, P3, P4 mit B1, B2, B3, B4 • Q5 gewichtet durch P2, P3, P4, P5 mit B2, B3, B4, B5
Quelle: G. Domnik, Uni Paderborn, Vorlesung Computergraphik
49
2. Boundary Representations 2.2. Freiformkurven und –flächen 2.2.5. B-Spline-Kurven
Eigenschaften vom B-Spline-Kurven jeder Punkt Pi wird durch eine individuelle B-Spline-Basisfunktion gewichtet,
die nur in den Intervallen ti, ti+1, …, ti+k von Null verschieden ist. Daraus resultiert lokale Verformbarkeit der Kurve durch lokalen Einfluss eines Punktes.
jedes Segment einer B-Spline-Kurve der Ordnung k liegt in der konvexen Hülle der dem Segment zugeordneten k aufeinanderfolgenden Stützpunkte.
Endpunkt-Interpolation Affine Invarianz Das Kontrollpolygon ist eine stückweise lineare Approximation an die Kurve.
Je geringer der Grad, desto näher liegt die Kurve an dem Kontrollpolygon. … (weiter in Computertgraphik II)
50
Erweiterung des Kurvenansatzes auf Flächen – gegeben: eine stückweise polynomiale Kurve F(u)
vom Grad n
– gegeben: zweite stückweise polynomiale Kurve G(v) vom Grad m
2. Boundary Representations 2.2. Freiformkurven und –flächen 2.2.6. Freiformflächen
51
Tensorproduktfläche S(u, v) beschrieben durch:
Interpretation als „Kurve von Kurven“ andere Notation:
2. Boundary Representations 2.2. Freiformkurven und –flächen 2.2.6. Freiformflächen
52
Abtasten der Oberfläche nach einem Gitternetz Unterteilung der Fläche in Dreiecke
2. Boundary Representations 2.2. Freiformkurven und –flächen 2.2.7. Umwandlung Freiformflächen in Polygonnetze
Quelle: Matthias Georgi, TU Darmstadt
53
Vorteile von parametrischen Kurven und Flächen – erlauben mehrere Werte für einen Wert von x oder y – unendliche Anstiege können repräsentiert werden – lokale Kontrolle – interpolieren oder approximieren die Kontrollpunkte – rechenzeiteffizient – einfache interaktive Veränderbarkeit der Kurve (lokale Kontrolle) – Transformationen durch Transformationen der Kontrollpunkte
einfach Nachteile:
– Algorithmen komplexer als bei Polygonnetzen – kaum Hardware-Unterstützung
2. Boundary Representations 2.2. Freiformkurven und –flächen 2.2.8. Zusammenfassung
54
lokal → Welt
Lokale Koordinaten
Modellierung der Geometrie
einzelner Objekte
Weltkoordinaten
Plazierung der Objekte
Plazierung der Lichtquellen
Plazierung der Kamera
Beleuchtungs- berechnung
Kamerakoordinaten
Entfernen verdeckter Rückseiten
Normalisierte Projektionskoordinaten
Clipping gegen Sichtkörper
(Normalisierte) Bildschirm- koordinaten
Rasterkoordinaten
Entfernen verdeckter Modellteile
Shading
Entfernen verdeckter Modellteile Tr
ansf
orm
atio
n in
Kam
erak
oord
inat
en
Viewing-Transformation
Proj
ektio
n
Rastertransformation
Rasterung
55
3. Kameramodell
virtuelle Kamera wird in Weltkoordinaten plaziert
wichtig für nachfolgende Koordinatentransformationen – Weltkoordinaten → Kamerakoordinaten
benötigt Position und Blickrichtung der Kamera
– Kamerakoordinaten → folgende benötigen interne Kameraparameter
56
3. Kameramodell
Quelle: Canon
Quelle: www.astroselbstbau.de/digitala_schnitt.jpg Quelle: http://demetrii.naos-group.info/images/hassi.jpg
57
3. Kameramodell
Reale Kamera als Orientierung und Metapher für den Viewing-Prozess.
Parameter realer Kameras: – Position – Blickrichtung – Brennweite – Tiefenschärfe – Art des Objektivs (Weitwinkel, Tele) bestimmt den
Öffnungswinkel → Projektionen sind teilweise nicht planar.
Parameter der entstehenden Bilder: – Größe (Breite, Höhe, bzw. Breite und Seitenverhältnis) – Typische Werte für Seitenverhältnis: 4:3 (Fernsehen), 16:9 – Auflösung
58
3. Kameramodell
In der Computergraphik wird ein vereinfachtes Kameramodell genutzt: – Position – Punkt (Koordinaten in 3D) – Blickrichtung – Vektor (Koordinaten in 3D)
Bildspezifikation: – Größe des Viewports in der Sichtebene (Pixel)
Zusätzlich: – Schnittebenen, die die dargestellte Szene auf solche Objekte
begrenzen, die hinter einer ersten Ebene (near) und vor einer zweiten (far) liegen.
• Spezifikation als Abstände von der Kamera in Blickrichtung. • Objekte, die eine Ebene schneiden, müssen geclippt werden.
59
3. Kameramodell
Orientierung der Kamera durch zwei Angaben spezifiziert: – Blickrichtung
• Angabe eines Zielpunktes, • Berechnung der Richtung aus Zielpunkt – Position • Richtung, in die die Kamera „schaut“ • Spezifikation durch einen Vektor in 3D
– up vector • bestimmt die Rotation der Kamera um die Blickrichtung • Projektion des up vectors muß in der Ebene senkrecht zur
Blickrichtung liegen, d. h. Blickrichtung und up vector dürfen nicht kollinear sein
60
3. Kameramodell
Öffnungswinkel der Kamera – analog zur Auswahl des Objektivs beim Photographieren – bestimmt die Stärke der perspektivischen Verzerrung
• keine Verzerrung – Parallelprojektion • sehr starke Verzerrung – Weitwinkellinsen
eigentlich zwei Öffnungswinkel im view frustum: horizontal und vertikal
sollten übereinstimmen (Spezifikation eines Winkels, der andere kann aus Seitenverhältnis berechnet werden)
61
3. Kameramodell
Zusammenhang zwischen Öffnungswinkel und Brennweite:
Quelle: http://web.canon.jp/Imaging/enjoydslr/p_2_013.html
62
3. Kameramodell
Der Sichtkörper – engl.: „view volume“ – Sichtkörper enthält alles, was vom COP (oder DOP) aus sichtbar
ist (= was die Kamera sieht) – normalerweise ein Kreiskegel → teure Berechnungen,
insbesondere beim Clipping von Objekten gegen eine Kegeloberfläche
– Approximation durch Pyramide(nstumpf) – die Ausgabe ist sowieso rechteckig – Clipping durch Lösen eines linearen Gleichungssystems – Pyramide(nstumpf) = view frustum
63
3. Kameramodell
Blickrichtung der Kamera: z-Achse Sichtebene: xy-Ebene Warum die Schnittebenen?
– Near-Ebene verhindert, dass Objekte die sehr nahe an der Kamera sind, alles verdecken und das Objekte hinter der Kamera berücksichtigt werden.
– Far-Plane verhindert, dass weit entfernte und damit im Bild sehr kleine Objekte Rechenaufwand beanspruchen.
64
lokal → Welt
Lokale Koordinaten
Modellierung der Geometrie
einzelner Objekte
Weltkoordinaten
Plazierung der Objekte
Plazierung der Lichtquellen
Plazierung der Kamera
Beleuchtungs- berechnung
Kamerakoordinaten
Entfernen verdeckter Rückseiten
Normalisierte Projektionskoordinaten
Clipping gegen Sichtkörper
(Normalisierte) Bildschirm- koordinaten
Rasterkoordinaten
Entfernen verdeckter Modellteile
Shading
Entfernen verdeckter Modellteile Tr
ansf
orm
atio
n in
Kam
erak
oord
inat
en
Viewing-Transformation
Proj
ektio
n
Rastertransformation
Rasterung
65
unterschiedliche Charakteristika durch verschiedene Modelle
Berechnung der einfallenden Lichtintensität/-farbe in Abhängigkeit von Entfernung und Einfallswinkel
4. Lichtquellen
66
4. Lichtquellen 4.1. Ambientes Licht
Grundhelligkeit der Szene entsteht durch Mehrfachreflexion und Streuung des
Lichts unabhängig vom Material
67
4. Lichtquellen 4.2. Punktlichtquellen
strahlt in alle Richtungen gleichmäßig harte Schatten keine Entsprechung in der Realität, Annahme:
Lichtquelle an endlicher Position aber unendlich klein
Attenuation: Intensität nimmt quadratisch mit der Entfernung ab
68
4. Lichtquellen 4.3. Gerichtete Lichtquellen
directional light Position im Unendlichen paralleler Lichteinfall keine Attenuation, d.h.
konstante Intensität I L = I 0
d I 0
69
4. Lichtquellen 4.4. Spotlight
kegelförmig begrenzte Punktlichtquelle Intensität nimmt ab mit
– Entfernung von der Lichtquelle – Entfernung von der Mittelachse des Kegels
Modellierung eines Scheinwerfers harte Schatten (da ähnliche Eigenschaften
wie PLQ)
70
4. Lichtquellen 4.5. Flächige Lichtquelle
genau begrenzte Fläche strahlt Licht parallel in eine Richtung ab
„Lichtstrahlen“ parallel Attenuation erzeugt weiche Schatten
71
Punktförmige Lichtquellen erzeugen harte Kontraste. Objekte sind entweder im Schatten oder im Licht; keine weichen Übergänge.
Flächenhafte Lichtquellen führen zu weicheren Übergängen. Objekte können in einem Halbschatten sein. In der CG werden sie durch mehrere punktförmige Lichtquellen angenähert.
Quelle: Angel (2000)
4. Lichtquellen 4.6. Punktförmige und flächenhafte Lichtquellen
72
Abschwächung (attenuation) – Intensität des Lichtes wird mit wachsender Entfernung zur
Lichtquelle kleiner (physikalisch: I ~ 1/d²) – In der CG hat sich eine geringere Abschwächung
(I ~ 1/(a+bd+cd²)) als günstig erwiesen. a, b und c müssen geeignet gewählt werden. Oft: a=0, b =1, c=0)
Farbe – Lichtquellen haben eine Farbe. Diese wird als RGB-Tripel
angegeben. – Verhalten der Lichtstrahlen hängt von der Wellenlänge ab. – Annäherung: betrachten nur R-, G- und B-Anteile.
4. Lichtquellen 4.7. Weiter Aspekte
73
4. Lichtquellen 4.8. Zusammenfassung
häufig verwendete Approximation: Punktlichtquelle: – einfach zu berechnen – Limitationen gegenüber realen Lichtquellen
alle anderen Lichtquellen müßten eigentlich über globale Modelle simuliert werden – Schattenwurf – Interaktion miteinander
häufig Annäherung möglich, dann aber ohne reale „Effekte“
Positionierung und Bestimmung weiterer Parameter der Lichtquellen (Orientierung, etc.) erfolgen in Weltkoordinaten
74
5. Zusammenfassung
Modellierung als Grundlage für die Bilderzeugung Darstellung der Realität (oder eines Konzeptes) im Computer derart, daß
die Daten zur Bilderzeugung genutzt werden können Geometrische Modelle
– Boundary Representations – Volumenmodelle – Geometrie und Topologie
Kameramodell Lichtquellen Weitere Bestandteile im Modell werden in Computergraphik II behandelt:
– Animation – Texturen und Materialien – Physikalische Eigenschaften der Objekte – …