3D-Objektmodellierung

Ähnliche Dokumente
9. Parametrische Kurven und Flächen

Approximationsverfahren für die Kurvendarstellung

Oberflächenrepräsentationen Kontinuierliche Kurven Bezier-Kurven. Freiformflächen. Diskret

Darstellungsarten für 3D-Körper. Boundary Representation (BRep):

Teil 2: Kurven und Flächen. Kurven und Flächen. Kurven. Parametrische Objekte. Kurven: 1D-Objekte Flächen: 2D-Objekte, basierend auf Kurven

Darstellung von Kurven und Flächen

CSG (constructive solid geometry) mit mengentheoretischer Verknüpfung von Elementarobjekten.

0.1 Modellierung von Kurven und Flächen mittels B-Splines

gekrümmte Flächen / Freiformflächen (analog zur Kurvendarstellung)

Splines. Bézier-Kurven. Beispiel zur Approximation. Interpolation & Approximation. Schiffbau Automobilbau Architektur. f(x) f(x) =

Polynome im Einsatz: Bézier-Kurven im CAD

6. Polynom-Interpolation

8. Modelle für feste Körper

5 Interpolation und Approximation

Modellierung. Oliver Hartmann

Grundlagen der 3D-Modellierung

11. Darstellung von Kurven und Flächen

Proseminar Bernsteinpolynome Bézier-Flächen. Dana Eckhardt Matr.-Nr:

Approximation durch Polynome

Geometrierepräsentation

Grundzüge der Vektoranalysis

Geometrische Modellierung mittels Oktalbäumen und Visualisierung von Simulationsdaten aus der Strömungsmechanik. Klaus Daubner

Kapitel 2: Kurven / 2-1: Splines Vergleich von Splines mit niedrigem und hohem Kurvengrad. Spline durch 7 Punkte mit verschiedenen Graden:

Darstellung von Kurven und Flächen

5 Numerische Mathematik

Vektorgeometrie. 1. Vektoren eingeben, Norm, Skalarprodukt. 2 In einem kartesischen Koordinatensystem sind die Vektoren. , v. und. gegeben.

Aufgaben zur Übung der Anwendung von GeoGebra

Abb. 5.10: Funktion und Tangentialebene im Punkt ( ) ( ) ( ) 3.) Die Zahlenwerte und in Gleichung (Def. 5.11) berechnen sich durch ( ) ( )

Mathematische Probleme, SS 2016 Freitag $Id: convex.tex,v /05/13 14:42:55 hk Exp $

Satz über implizite Funktionen und seine Anwendungen

Mathematik. für das Ingenieurstudium. 10 Funktionen mit mehreren Variablen. Jürgen Koch Martin Stämpfle.

Gitterfreie Methoden. Florian Hewener. 29. Oktober 2013

7.4. Gradient, Niveau und Tangentialebenen

Unterteilungskurven und -flächen

3D - Modellierung. Arne Theß. Proseminar Computergraphik TU Dresden

Parallele Algorithmen in der Bildverarbeitung

Abitur 2013 Mathematik Geometrie V

Selbsteinschätzungstest Auswertung und Lösung

entspricht der Länge des Vektorpfeils. Im R 2 : x =

1 2 x x x x x x2 + 83

10.6. Implizite ebene Kurven und Tangenten

Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen

Über die regelmäßigen Platonischen Körper

Algebraische Kurven - Vorlesung 29. Projektion weg von einem Punkt

Approximation. E(N) N. Beachte: Der Wert für N = 32 ist vernachlässigt, da er in der Grössenordnung der Rechengenauigkeit liegt.

Einleitung 2. 1 Koordinatensysteme 2. 2 Lineare Abbildungen 4. 3 Literaturverzeichnis 7

Algebraische Kurven. Holger Grzeschik

Computergrafik / Animation. künstliches Objekt, dargestellt durch Anzahl von Punkten in Raum und Zeit (bei bewegten, animierten Objekten).

2.4A. Reguläre Polyeder (Platonische Körper)

3.1.3 Newtonsche Interpolationsformel / Dividierte Differenzen

Kurven und Flächen. Interaktive Kontrolle und Präsentation komplexer Kurven und Flächen (=Modellierung) 3D Modellierung Prof. Dr.-Ing. H.-P.

5. Gitter, Gradienten, Interpolation Gitter. (Rezk-Salama, o.j.)

Sie braucht weniger Speicherplatz als das Polygon und

Kapitel 2: Mathematische Grundlagen

Kurzskript zur Vorlesung Mathematik I für MB, WI/MB und andere Prof. Dr. Ulrich Reif

2.2 Kollineare und koplanare Vektoren

Den Mittelpunkt zwischen zwei Punkten kannst du mithilfe der Ortsvektoren und Verbindungsvektoren berechnen.

Mathematik für das Ingenieurstudium

KAPITEL 8. Interpolation

Vorbereitungsaufgaben zur Klausur Mathematik I für Studierende des Studienganges Elektrotechnik und Informationssystemtechnik

Nachklausur am Donnerstag, den 7. August 2008

Implizite Funktionen. Ist für eine stetig differenzierbare Funktion f : R n R m R n. so lässt sich das Gleichungssystem

3. Analyse der Kamerabewegung Video - Inhaltsanalyse

11: Die Euler sche Polyederformel für planare Graphen

4.1. Vektorräume und lineare Abbildungen

Prüfungsteil 2, Aufgabe 4 Analytische Geometrie

4. Segmentierung von Objekten Video - Inhaltsanalyse

Kollisionserkennung

Übungen zu Splines Lösungen zu Übung 20

Algebra 3.

Seminar How to make a PIXAR movie

Themen Lagrange-Interpolation Hermite-Interpolation. Splines. Bézier-Kurven. 5 Interpolation. Interpolation Die Lagrangesche Interpolationsaufgabe

3 Das n-dimensionale Integral

Dierentialrechnung mit einer Veränderlichen

Rechnen mit Vektoren. 1. Vektoren im Koordinatensystem Freie Vektoren in der Ebene

Aufgaben / Lösungen der Klausur Nr. 4 vom Juni 2002 im LK 12. nx ln(x)dx

n n x a 1 a 2 = 0 n 1 x 1 + n 2 x 2 + ( n 1 a 1 n 2 a 2 )

Grundlagen der Vektorrechnung

REPETITORIUM DER HÖHEREN MATHEMATIK. Gerhard Merziger Thomas Wirth

Polynominterpolation

Interpolation und Integration mit Polynomen

1.6 Implizite Funktionen

1 Ableitungen. Definition: Eine Kurve ist eine Abbildung γ : I R R n, γ besteht also aus seinen Komponentenfunktionen. a 1 + tx 1. eine Kurve.

Polynominterpolation mit Matlab.

8 Polynominterpolation

( ) Dann gilt f(x) g(x) in der Nähe von x 0, das heisst. Für den Fehler r(h) dieser Näherung erhält man unter Verwendung von ( )

Humboldt-Universität zu Berlin Wintersemester 2010/11 Institut für Informatik Grundlagen der Programmierung. 6. Übungsblatt

Computer Vision I. Nikos Canterakis. Lehrstuhl für Mustererkennung, Universität Freiburg

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016

Analysis II. Vorlesung 47

Transkript:

3D-Objektmodellierung Beschränkung auf echte dreidimensionale Strukturen: keine isolierten Punkte, Kanten oder Flächen keine baumelnden Kanten oder Flächen Computergrafik: Modellierung dreidimensionaler Körper p.1/87

Polygone als Oberflächenelemente zur Oberflächenmodellierung: flexible Formen zur Repräsentation gekrümmter Flächen für die Berechnung der Darstellung: Annäherung durch viele ebene Polygone, in der Regel Dreiecke (ggf. Triangulation) Computergrafik: Modellierung dreidimensionaler Körper p.2/87

Polygone als Oberflächenelemente Orientierung der Polygonecken entgegen dem Uhrzeigersinn: nach außen zeigende sichtbare Seite des Körpers 0,1,2: von vorne sichtbar 0,2,1: Betrachtung der unsichtbaren Rückseite Computergrafik: Modellierung dreidimensionaler Körper p.3/87

Beispiel: Tetraeder Computergrafik: Modellierung dreidimensionaler Körper p.4/87 Seiten des Tetraeders:,,

Topologische Begriffe. Es sei heißt genau dann Umgebung, wenn ein existiert mit Eine Menge des Punktes heißt genau dann innerer Punkt von, wenn es eine Umgebung von gibt. mit heißt ist innerer Punkt von in das Innere von. heißt genau dann Randpunkt von, wenn jede Umgebung sowohl einen nichtleeren Schnitt mit und dem Komplement von besitzt. Computergrafik: Modellierung dreidimensionaler Körper p.5/87

Topologische Begriffe bound heißt der Rand von. Es gilt in cl cl reg bound ist Randpunkt von heißt genau dann offen, wenn in bound. gilt. ist der Abschluss von. heißt genau dann abgeschlossen, wenn gilt. cl in heißt die Regulasierung von. heißt genau dann regulär, wenn reg gilt. Computergrafik: Modellierung dreidimensionaler Körper p.6/87

3D-Objektmodellierung Durch Regularisierung lassen sich sowohl isolierte Punkte, Kanten und Flächen als auch baumelnde Kanten und Flächen entfernen. Computergrafik: Modellierung dreidimensionaler Körper p.7/87

Voxelmodell Aufteilung des Raumes in ein Gitter gleich großer Würfel (Voxel) Darstellung eines Körpers durch eine Menge von Würfeln Computergrafik: Modellierung dreidimensionaler Körper p.8/87

Voxelmodell Ein Voxel gehört genau dann zu einem Körper, wenn sich sein Mittelpunkt innerhalb des Körpers befindet. Die Güte der Approximation eines Körpers durch Voxel hängt von der Größe der Voxel ab. kleine Voxel gute Approximation, hoher Speicher- und Rechenaufwand große Voxel schlechte Approximation, geringer Speicher- und Rechenaufwand Speicherung eines Körpers als Binärmatrix oder Voxelliste Computergrafik: Modellierung dreidimensionaler Körper p.9/87

Oktalbäume (Octrees) Einschließen des Körpers in einen hinreichend großen Würfel Aufteilung des Würfels in acht gleich große Teilwürfel. Teilwürfel, die vollständig innerhalb (in) oder vollständig außerhalb (off) des Körpers liegen, werden entsprechend markiert und nicht weiter verfeinert. Teilwürfel, die den Rand des Körpers enthalten (on), werden wieder in acht gleich große Teilwürfel zerlegt, mit denen entsprechend verfahren wird, bis eine minimale Kantenlänge erreicht wurde. Computergrafik: Modellierung dreidimensionaler Körper p.10/87

Oktalbäume zweidimensionales Analogon: Quadtrees: Computergrafik: Modellierung dreidimensionaler Körper p.11/87

Oktalbäume korrespondierender Quadtree bis zur Ebene 4: Computergrafik: Modellierung dreidimensionaler Körper p.12/87

CSG-Schema ähnlich wie die Verwendung der Klasse Area bei Java 2D: Es gibt elementare Grundkörper (z.b. Quader, Kugel, Zylinder, Pyramide). Auf diese Grundkörper können Transformationen angewendet werden. Mittels (regularisierter) Mengenoperationen können aus den (transformierten) Grundkörpern neue Körper erzeugt werden. Computergrafik: Modellierung dreidimensionaler Körper p.13/87

U U \ U CSG-Schema Computergrafik: Modellierung dreidimensionaler Körper p.14/87

Verschiebegeometrie Körper werden aus zweidimensionalen Flächen und Verschiebeoperationen erzeugt: Computergrafik: Modellierung dreidimensionaler Körper p.15/87

Approximation durch Polygone Computergrafik: Modellierung dreidimensionaler Körper p.16/87

Approximation durch Polygone Kugel mit unterschiedlicher Tesselierung Computergrafik: Modellierung dreidimensionaler Körper p.17/87

Tesselierung in Java 3D Darstellung als Drahtgittermodell: PolygonAttributes polygattr = new PolygonAttributes(); polygattr.setpolygonmode( PolygonAttributes.POLYGON_LINE); myapp.setpolygonattributes(polygattr); Computergrafik: Modellierung dreidimensionaler Körper p.18/87

Tesselierung in Java 3D Festlegung der Auflösung bei elementaren geometrischen Objekten: Sphere s = new Sphere(r, Sphere.GENERATE_NORMALS, res,sphereapp); Annäherung der Oberfläche mit jeweils res Dreiecken im Gesamtumfang Computergrafik: Modellierung dreidimensionaler Körper p.19/87

Tesselierung in Java 3D Cylinder c = new Cylinder(r,h, Cylinder.GENERATE_NORMALS, xres,yres,app); Cone c = new Cone(r,h, Cone.GENERATE_NORMALS, xres,yres,app); Annäherung der Oberfläche mit jeweils xres und yres Dreiecken in - bzw. -Richtung. Computergrafik: Modellierung dreidimensionaler Körper p.20/87

Java 3D: GeometryArrays Ein GeometryArray beschreibt einen Körper (bzw. dessen Oberfläche) und besteht im Wesentlichen aus Punkten, Flächen (oder Formen), die durch die Punkte definiert werden (z.b. Dreiecke oder Vierecke), Farb- oder Texturinformationen, Normalenvektoren, die Informationen über die tatsächliche Oberflächenform des Körpers enthalten. Computergrafik: Modellierung dreidimensionaler Körper p.21/87

Java 3D: GeometryArrays einfache Möglichkeit zur Erzeugung eines GeometryArrays: Zerlegung der Körperoberfläche in Dreiecke Definition eines Arrays, das die Eckpunkte der Dreiecke enthält: Point3f[] vertices = { new Point3f(...),... new Point3f(...) }; Computergrafik: Modellierung dreidimensionaler Körper p.22/87

Java 3D: GeometryArrays Definition der Dreiecke int triangles[] = { 0,2,1, 1,4,7,... }; Die Oberfläche des Körpers besteht dann aus den Dreiecken, die aus dem 0., 2. und 1. Element (Punkt), 1., 4. und 7. Element (Punkt) des vertices-array gebildet werden. Computergrafik: Modellierung dreidimensionaler Körper p.23/87

Java 3D: GeometryArrays Erzeuge zunächst ein GeometryInfo-Objekt: GeometryInfo gi = new GeometryInfo( GeometryInfo.TRIANGLE_ARRAY); gi.setcoordinates(vertices); gi.setcoordinateindices(triangles); NormalGenerator ng = new NormalGenerator(); ng.generatenormals(gi); Computergrafik: Modellierung dreidimensionaler Körper p.24/87

Java 3D: GeometryArrays Erzeuge aus dem GeometryInfo-Objekt ein GeometryArray und generiere daraus einen Shape3D. GeometryArray ge = gi.getgeometryarray(); Shape3D inducedshape = new Shape3D(ge,desiredAppearance); Das Shape3D-Objekt kann dann wie die elementaren geometrischen Objekte einer Transformationsgruppe zugeordnet werden. (vgl. GeomArrayExample.java) Computergrafik: Modellierung dreidimensionaler Körper p.25/87

Laden von Szenen Diverse Grafikformate können direkt als Java 3D Szenen geladen werden. Beispiel: Wavefront Object Dateiformat (.obj ) Dieses Format enthält ähnliche Informationen wie die GeometryArrays. Neben einigen zu importierenden Packages kann eine Szene folgendermaßen geladen werden: Computergrafik: Modellierung dreidimensionaler Körper p.26/87

Laden von Szenen ObjectFile f = new ObjectFile( ObjectFile.RESIZE); Scene s = null; try { s = f.load("file.obj"); } catch (Exception e) { System.out.println("Error..."); } BranchGroup thescene = s.getscenegroup(); Computergrafik: Modellierung dreidimensionaler Körper p.27/87

Die Objekte der geladenen Szene können folgendermaßen abgefragt werden: Laden von Szenen Hashtable sobs = s.getnamedobjects(); Enumeration enum = sobs.keys(); String name; while (enum.hasmoreelements()) { name = (String) enum.nextelement() System.out.println("Name: "+name); } Computergrafik: Modellierung dreidimensionaler Körper p.28/87

Laden von Szenen Auf ein Objekt in der Szene kann mittels seines Namens zugegriffen und beispielsweise die Farbe geändert werden: Shape3D szeneobject = (Shape3D) sobs.get("objname"); szeneobject.setappearance( desiredappearance); Computergrafik: Modellierung dreidimensionaler Körper p.29/87

Laden von Szenen Verwendung eines Teils einer Szene: Shape3D part = (Shape3D) namedobjects.get("partname"); Shape3D extractedpart = (Shape3D) part.clonetree(); extractedpart.setappearance(app); tg.addchild(extractedpart); (vgl. Load3DExample.java und Extract3DExample.java) Computergrafik: Modellierung dreidimensionaler Körper p.30/87

Flächen als Funktionen weitere mögliche Definiton einer Oberfläche als Funktion in zwei Variablen in impliziter Form: Nachteile: Schwierigkeiten eine Gleichung zu finden, die die gewünschte Fläche beschreibt Lösung der Gleichung für das Rendering Computergrafik: Modellierung dreidimensionaler Körper p.31/87

Flächen als Funktionen einfacher: Beschreibung einer Fläche als explizite Funktionsgleichung in der Form Nachteil: Geschlossene Oberflächen müssen stückweise aus Funktionen zusammengesetzt werden. Computergrafik: Modellierung dreidimensionaler Körper p.32/87

Flächen als Funktionen Computergrafik: Modellierung dreidimensionaler Körper p.33/87

Flächen als Funktionen Bestimmung der Dreiecke für die Darstellung einer Funktion: Computergrafik: Modellierung dreidimensionaler Körper p.34/87

Flächen als Funktionen Wahl der Feinheit der Auflösung durch die Dreiecke: hohe Auflösung: gute Annäherung der Funktion, hoher Rechenaufwand geringe Auflösung: schlechte Annäherung der Funktion, niedriger Rechenaufwand Computergrafik: Modellierung dreidimensionaler Körper p.35/87

Flächen als Funktionen mögliche Lösung: flexible Aufteilung in Dreiecke In jedem Quadrat wird der Approximationsfehler berechnet. Jedes Quadrat wird so lange rekursiv weiter in kleinere Quadrate aufgeteilt, bis der Fehler genügend klein oder die maximal erlaubte Rekursionstiefe erreicht ist. Computergrafik: Modellierung dreidimensionaler Körper p.36/87

Darstellung von Landschaften Landschaften bestehen aus Höhen- und Texturinformationen Die Höheninformationen entsprechen einer Abtastung einer Funktion, wobei die Höhe der Landschaft über dem Punkt angibt. Problem: Ein enges Gitter mit Höheninformationen führt zu einer hohen Anzahl von Dreiecken beim Rendering, auch für Teile der Landschaft, die weit entfernt sind. Computergrafik: Modellierung dreidimensionaler Körper p.37/87

Level of Detail (LOD) Auflösung in Abhängigkeit der Entfernung: Computergrafik: Modellierung dreidimensionaler Körper p.38/87

Text Klassen für Text im Dreidimensionalen: Text2D und Text3D Erzeugung eines Shape-Objekts (für Text2D ähnlich): Font3D f3d = new Font3D(f, new FontExtrusion()); Text3D t3d = new Text3D(f3d,s,p); Shape3D textshape = new Shape3D(t3d,app); Computergrafik: Modellierung dreidimensionaler Körper p.39/87

Billboard Behaviour Bei Beschriftungen wünschenswert: Der Text soll immer zum Betrachter hin orientiert sein. Dies nennt man Billboard Behaviour. Billboard bb = new Billboard(tgBBGroup, Billboard.ROTATE_ABOUT_POINT, p); bb.setschedulingbounds(bounds); tgbbgroup.addchild(bb); tgbbgroup.setcapability( TransformGroup.ALLOW_TRANSFORM_WRITE); Computergrafik: Modellierung dreidimensionaler Körper p.40/87

Oberflächenmodellierung (Gekrümmte) Oberflächen von Körpern werden meistens durch (viele kleine) Dreiecke angenähert. Die Modellierung von Oberflächen wird oft (vor allem im CAD-Bereich) durch Freiformflächen ermöglicht. Dadurch kann auch die Auflösung (Approximationsgüte der Oberfläche/Anzahl der Dreiecke) abhängig von der gewünschten Genauigkeit oder Entfernung des Objektes bestimmt werden. Computergrafik: Modellierung dreidimensionaler Körper p.41/87

Oberflächenmodellierung Normalenvektoren von Oberflächen werden unter Anderem für Beleuchtungseffekte benötigt. Für die durch Dreiecke angenäherte Oberfläche werden die Normalenvektoren nicht direkt berechnet (als Normalenvektoren von Ebenen Polygonen), sondern in Abhängigkeit von der Originaloberfläche. Methoden zur Berechnung von Normalenvektoren werden später genauer besprochen. Computergrafik: Modellierung dreidimensionaler Körper p.42/87

Freiformkurven und -flächen Freiformkurven sind Teile von Freiformflächen. Computergrafik: Modellierung dreidimensionaler Körper p.43/87

Freiformkurven Freiformflächen werden über Freiformkurven (ähnlich wie QuadCurve2D oder CubicCurve2D in Java 2D) definiert. Freiformkurven werden über Punkte (im Raum) definiert. Interpolation bedeutet, durch eine vorgegebene Menge von Punkten eine Kurve zu legen. Approximation erfordert nur, dass die Kurve die Punkte annähert. Computergrafik: Modellierung dreidimensionaler Körper p.44/87

Kurvenmodellierung Sollen Kurven (oder auch Oberflächen) über Parameter (z.b. Punkte im Raum) definiert werden, sind folgende Eigenschaften wünschenswert: Kontrollierbarkeit: Der Einfluss der Parameter auf den Kurvenverlauf ist für den Benutzer intuitiv verständlich. Soll ein Kurvenverlauf geändert werden, muss für den Benutzer einfach erkennbar sein, welche Parameter er wie ändern sollte. Lokalitätsprinzip: Es muss die Möglichkeit geben, die Kurve lokal zu verändern. Wird beispielsweise eine Stützstelle der Kurve verändert, sollte dies nach Möglichkeit nur Auswirkungen in der Nähe der Stützstelle haben. Computergrafik: Modellierung dreidimensionaler Körper p.45/87

Kurvenmodellierung Glattheit: Die Kurve sollte gewisse Glattheitseigenschaften besitzen. Stetigkeit Differenzierbarkeit eventuell auch Existenz höherer Ableitungen beschränkte Variation Computergrafik: Modellierung dreidimensionaler Körper p.46/87

Polynominterpolation Durch Stützstellen lässt sich immer ein Interpolationspolynom höchstens -ten Grades legen. Nachteile: Bei vielen Stützstellen erreicht das Polynom sehr schnell einen sehr hohen Grad. Das Lokalitätsprinzip ist verletzt. Der Bereich, in dem das Interpolationspolynom verläuft, ist nur schwer anhand der Stützstellen zu bestimmen, was zu Problemen beim Rendering führt. (Hochgradige) Interpolationspolynome neigen zum Schwingen. Computergrafik: Modellierung dreidimensionaler Körper p.47/87

Polynominterpolation 1.5 f(x) 1 0.5 0-0.5-1 -1.5 0 1 2 3 4 5 Interpolationspolynom 5. Grades durch die Stützstellen (0,0), (1,0), (2,0), (3,0), (4,1), (5,0): Computergrafik: Modellierung dreidimensionaler Körper p.48/87

Polynominterpolation 1.5 1 f(x) 0.5 0-0.5-1 -1.5 0 1 2 3 4 5 Das Interpolationspolynom verläuft nicht innerhalb der konvexen Hülle der Stützstellen. Computergrafik: Modellierung dreidimensionaler Körper p.49/87

Bézier-Kurven ): -tes Bernstein-Polynom -ten Grades ( Es gilt: für alle für alle Computergrafik: Modellierung dreidimensionaler Körper p.50/87

Bézier-Kurven zur Es seien Kontrollpunkte Beschreibung einer Kurve im Computergrafik üblicherweise gegeben. (in der oder ) heißt Bézier-Kurve vom Grad. heißen Bézier- oder Kontrollpunkte. Computergrafik: Modellierung dreidimensionaler Körper p.51/87

Bézier-Kurven und Es gilt: Die Bézier-Kurve interpoliert den Anfangs- und den Endpunkt. Die anderen Kontrollpunkte liegen i.a. nicht auf der Kurve. Es gilt: Die Tangente im Anfangspunkt verläuft in Richtung des Punktes, die Tangente im Endpunkt kommt aus der Richtung des Punktes. Computergrafik: Modellierung dreidimensionaler Körper p.52/87

Bézier-Kurven Aufgrund der Eigenschaften der Bernstein-Polynome ist die Bézier-Kurve an jeder Stelle eine Konvexkombination der Kontrollpunkte. Die Bézier-Kurve verläuft innerhalb der konvexen Hülle der Kontrollpunkte. Bézier-Kurven sind invariant unter affinen Abbildungen. D.h., wenn man auf alle Kontrollpunkte eine affine Transformation anwendet, stimmt die Bézier-Kurve aus den transformierten Punkten mit der Transformation der ursprünglichen Bézier-Kurve überein. Computergrafik: Modellierung dreidimensionaler Körper p.53/87

Bézier-Kurven Bézier-Kurven sind symmetrisch in den Kontrollpunkten, d.h. die Kontrollpunkte und ergeben dieselbe Kurve (nur rückwärts durchlaufen). Verwendet man als Kontrollpunkte eine Konvexkombination zweier Sätze von Kontrollpunkten, ergibt sich als Bézier-Kurve die Konvexkombination der entsprechenden Bézier-Kurven:. definiert die Bézier-Kurve. definiert die Bézier-Kurve definiert die, falls Bézier-Kurve gilt. Computergrafik: Modellierung dreidimensionaler Körper p.54/87

Bézier-Kurven Liegen alle Kontrollpunkte auf einer Geraden oder einer Parabel, ergibt sich als Bézier-Kurve ebenfalls die entsprechende Gerade bzw. Parabel. Bézier-Kurven erhalten gewisse Formeigenschaften wie Monotonie oder Konvexität der Kontrollpunkte. Obwohl Bézier-Kurven sehr gute Eigenschaften besitzen, sind sie für größere Anzahlen von Kontrollpunkten ungeeignet, da sich ein zu hoher Polynomgrad ergibt. Computergrafik: Modellierung dreidimensionaler Körper p.55/87

B-Splines B-Splines werden aus mehreren Bézier-Kurven niedrigeren Grades (üblicherweise Grad 3 oder 4) zusammengesetzt, um eine Kurve zu einer gegebenen Menge von Kontrollpunkten zu definieren. Es wird für jeweils aufeinander folgende Punkte eine Bézier-Kurve berechnet. Der letzte Kontrollpunkt der vorhergehenden Bézier-Kurve bildet den ersten Kontrollpunkt der nachfolgenden Bézier-Kurve. Computergrafik: Modellierung dreidimensionaler Körper p.56/87

B-Splines Dadurch interpolieren B-Splines die Kontrollpunkte, an denen die einzelnen Bézier-Kurven jeweils aneinander gefügt werden. Diese Nahtstellenpunkte werden als Knotenpunkte bezeichnet. Die anderen Kontrollpunkte heißen innere Bézier-Punkte. Computergrafik: Modellierung dreidimensionaler Körper p.57/87

B-Splines P 5 P 6 P 2 7 P P 4 3 P P 1 und inneren B-Spline mit Knotenpunkten Bézier-Punkten Damit keine Knicke an den Nahtstellen entstehen (Nicht-Differenzierbarkeit), müssen der jeweilige Knotenpunkt, der direkt davor und der direkt dahinter liegende innere Bézier-Punkt kollinear sein. Computergrafik: Modellierung dreidimensionaler Körper p.58/87

B-Splines Mit B-Splines -ten Grades lassen sich durch geeignete Wahl der inneren Bézier-Punkte Kurven erzeugen, die -mal stetig differenzierbar sind. Bei kubischen Splines (Polynomgrad 3) muss neben der Kollinearitätsbedingung eine weitere Bedingung an die benachbarten inneren Bézier-Punkte gestellt werden. Computergrafik: Modellierung dreidimensionaler Körper p.59/87

B-Splines Computergrafik: Modellierung dreidimensionaler Körper p.60/87

B-Splines B-Splines verlaufen in der konvexen Hülle der Kontrollpunkte. sind invariant unter affinen Abbildungen. interpolieren Anfangs- und Endpunkt der Kontrollpunkte. sind symmetrisch in den Kontrollpunkten. genügen dem Lokalitätsprinzip. Computergrafik: Modellierung dreidimensionaler Körper p.61/87

B-Splines perspektivsche Projektion einer parametrische Kurve in homogenen Koordinaten: Computergrafik: Modellierung dreidimensionaler Körper p.62/87

B-Splines in kartesischen Koordinaten: Ergebnis: rationale Funktionen in Computergrafik: Modellierung dreidimensionaler Körper p.63/87

NURBS Bei der perspektivische Projektion ergeben sich aus Polynomen rationale Funktionen. Damit sind B-Splines nicht invariant unter beliebigen Projektionen. NURBS (non-uniform rational B-splines) verwenden auf rationale Funktionen erweiterte Bézier-Kurven der Form: Computergrafik: Modellierung dreidimensionaler Körper p.64/87

Effiziente Polynomberechnung Meistens werden kubische Kurven zur Modellierung von Kurven (und Flächen) verwendet. Die kubischen Kurven müssen für konkrete Modellberechnungen abgetastet werden. Die parametrische Kurve wird an äquidistanten Stellen des Parameters ausgewertet, die entsprechenden Punkte berechnet und jeweils durch Geradenstücke verbunden. Alternative könnte man die Auswertung rekursiv verfeinern, bis der Mittelpunkt der zu zeichnenden Geraden nahe genug an der Kurve liegt. Computergrafik: Modellierung dreidimensionaler Körper p.65/87

Effiziente Polynomberechnung Verwendung von Vorwärtsdifferenzen bei Schrittweite : d.h. oder erhalten wir Für Computergrafik: Modellierung dreidimensionaler Körper p.66/87

Effiziente Polynomberechnung ebenfalls Wendet man zur Berechnung von Vorwärtsdifferenzen an, ergibt sich: Computergrafik: Modellierung dreidimensionaler Körper p.67/87

Effiziente Polynomberechnung Die gleiche Technik lässt sich ebenfalls auf die Berechnung von anwenden: ein: Zur Initialisierung setzen wir den Wert Computergrafik: Modellierung dreidimensionaler Körper p.68/87

Effiziente Polynomberechnung + + + + + + Differenzenschema für Polynome dritten Grades Computergrafik: Modellierung dreidimensionaler Körper p.69/87

Effiziente Polynomberechnung 3 6 15 36 75 63 21 3 9 39 30 18 6 24 12 6 6 6 6 6 Differenzenschema für das Polynom mit der Schrittweite Computergrafik: Modellierung dreidimensionaler Körper p.70/87

Freiformflächen t=1 P (t) 1 t=0.8 t=0.6 t s t=0.4 t=0.2 t=0 P (t) 2 Freiformflächen als parametrische Kurven in zwei Parametern Computergrafik: Modellierung dreidimensionaler Körper p.71/87

Freiformflächen Verwendung von Bézier-Flächen anstelle von Bézier-Kurven: und mit Kontrollpunkten den Computergrafik: Modellierung dreidimensionaler Körper p.72/87

Freiformflächen Computergrafik: Modellierung dreidimensionaler Körper p.73/87

Freiformflächen Die vier Eckpunkte liegen auf der Fläche, die anderen Kontrollpunkte i.a. nicht. Die Fläche verläuft innerhalb der konvexen Hülle der Kontrollpunkte. sind Die Kurven mit konstantem Wert Bézier-Kurven bzgl. der Kontrollpunkte Entsprechendes gilt für die Kurven mit konstantem. Computergrafik: Modellierung dreidimensionaler Körper p.74/87

Freiformflächen In der Computergrafik werden häufig Dreiecke (und nicht Vierecke) als Basis für Oberflächen verwendet. Bézier-Fläche vom Grad über einem Dreiecksgitter: Computergrafik: Modellierung dreidimensionaler Körper p.75/87

Freiformflächen mit den Bernsteinpolynomen und, mit, Computergrafik: Modellierung dreidimensionaler Körper p.76/87

Dreiecksgitter Computergrafik: Modellierung dreidimensionaler Körper p.77/87

Normalenvektoren bei Dreiecken Berechnung der Ebenengleichung: Der Vektor ist der (nichtnormierte) Normalenvektor zur Ebene, denn: nicht-normierter Normalenvektor Punkt in der Ebene Computergrafik: Modellierung dreidimensionaler Körper p.78/87

Normalenvektoren bei Dreiecken Der Verbindungsvektor zwischen und liegt in, d.h., wenn er senkrecht zum Normalenvektor steht: Setze,, und Computergrafik: Modellierung dreidimensionaler Körper p.79/87

Normalenvektoren bei Dreiecken Sind mindestens drei (nicht-kollineare) Punkte gegeben, so lässt sich der Normalenvektor mittels des Kreuzproduktes berechnen: kann dann durch Einsetzen eines der Punkte bestimmt werden: Computergrafik: Modellierung dreidimensionaler Körper p.80/87

Normalenvektoren an Oberflächen -Tangentenvektor: Computergrafik: Modellierung dreidimensionaler Körper p.81/87

Normalenvektoren an Oberflächen -Tangentenvektor: Computergrafik: Modellierung dreidimensionaler Körper p.82/87

Normalenvektoren an Oberflächen Die beiden Tangentenvektoren verlaufen parallel zur Oberfläche an der Stelle, so dass das Kreuzprodukt dieser beiden Vektoren den Normalenvektor bildet. Computergrafik: Modellierung dreidimensionaler Körper p.83/87

Dreieck mit verschiedenen Normalen Bei der Annäherung einer gekrümmten Fläche durch Dreiecke werden nicht die Normalenvektoren zu den planaren Dreiecken, sondern entsprechend der gekrümmten Originalfläche bestimmt. Computergrafik: Modellierung dreidimensionaler Körper p.84/87

Normalenvektoren an Oberflächen Bei der Modellierung einer Oberfläche in Java 3D mittels eines GeometryInfo-Objekts werden im Normalfall die Normalenvektoren zu den planaren Dreiecken bestimmt. Es kann aber auch angegeben werden, dass die Normalenvektoren sich aus der Interpolation benachbarter Dreiecke ergeben: NormalGenerator ng = new NormalGenerator(); ng.setcreaseangle(alpha); Computergrafik: Modellierung dreidimensionaler Körper p.85/87

Normalenvektoren an Oberflächen Der Winkel alpha gibt an, wie groß der Winkel zwischen benachbarten Dreiecken maximal sein darf, damit eine Interpolation der Normalenvektoren vorgenommen werden soll. Der Defaultwert von alpha ist Null, so dass im Normalfall keine Interpolation der Normalenvektoren stattfindet. (vgl. NormalsForGeomArrays.java) Computergrafik: Modellierung dreidimensionaler Körper p.86/87

Normalenvektoren an Oberflächen interpolierte und nicht-interpolierte Normalenvektoren Computergrafik: Modellierung dreidimensionaler Körper p.87/87