Kurs:Maßtheorie auf topologischen Räumen/Interpolation von Gittern - NURBS

Einführung Bearbeiten

Non-uniform rational B-Splines (deutsch: nicht-uniforme rationale B-Splines, kurz NURBS) sind mathematisch definierte Kurven oder Flächen, die im Computergrafik-Bereich, beispielsweise im CGI oder CAD, zur Modellierung beliebiger Formen verwendet werden. Ein NURBS kann jeden beliebigen nicht-verzweigenden stetigen Linienzug darstellen. Im Computergrafik-Bereich wird die Geometrieinformation jedoch meist über stückweise funktional definierte Geometrie-Elemente dargestellt, statt die komplette Formgebung über einen einzigen NURBS abzubilden.

Abbildung - Gitter mit NURBS-Flächen Bearbeiten

 

Kontrollpunkte mit NURBS-Fläche Bearbeiten

 

Entwicklung Bearbeiten

In den 1950er Jahren wurden besonders im Automobil- und Schiffbau für die fehlerfreie Reproduzierbarkeit technischer Bauteile mathematisch exakte Beschreibungen von Freiformflächen benötigt. Vor dieser Zeit wurden derartige Oberflächen durch einzelne von einem Konstrukteur hergestellte physikalische Modelle beschrieben.

Pierre Étienne Bézier Bearbeiten

So begann unter anderem der Ingenieur Pierre Étienne Bézier, zu dieser Zeit bei Renault in Frankreich, mit der Entwicklung der nach ihm benannten Bézierkurve.

Paul de Casteljau Bearbeiten

Unabhängig von Bézier arbeitete Paul de Casteljau, angestellt bei Citroën, zur gleichen Zeit auch an diesem mathematischen Problem. Weil Bézier die Ergebnisse seiner Arbeit veröffentlichte, werden heutzutage in der graphischen Datenverarbeitung Splines, deren Kontrollpunkte nicht auf der Kurve selbst liegen, als „Bézier-Spline“ bezeichnet, während der Name von de Casteljau in dem nach ihm benannten Algorithmus fortlebt, der für die numerische Verarbeitung parametrischer Flächen eingesetzt wird.

Generalisierung B-Splines Bearbeiten

In den 1960er Jahren wurde klar, dass non-uniform rational B-Splines (NURBS) eine Generalisierung von Bézier-Splines sind, die als uniform non-rational B-Splines angesehen werden können.

Einsatz in statische Konstruktionen Bearbeiten

Zunächst wurden NURBS nur in proprietären CAD-Werkzeugen von Automobilunternehmen verwendet. Später hielten sie Einzug in weiter verbreitete Computergrafik-Anwendungen, beispielsweise die Open Graphics Library (OpenGL).


Einsatz in dynamischen interaktiven Konstruktionen Bearbeiten

Auf Systemen von Silicon Graphics wurde erstmals 1989 die Echtzeitverarbeitung und interaktives Rendering von NURBS-Kurven und NURBS-Flächen möglich. Auf der Cebit 1994 stellten die Firmen CAS Berlin und CAA in Zusammenarbeit mit der TU Berlin den ersten, auf den Namen NöRBS getauften, interaktiven NURBS-Modellierer für PCs vor.

Einsatz in Computergrafik Bearbeiten

Heutzutage enthalten die meisten professionellen Computergrafik-Anwendungen NURBS-Technologie, die in den meisten Fällen durch die Integration einer NURBS-Engine realisiert ist, die von einer darauf spezialisierten Firma bereitgestellt wird.

OpenSource 3D-Modellierung Bearbeiten

Im OpenSource-Bereich kann beispielhaft Blender genannt werden, mit dem z.B. professionelle Animationsfilme hergestellt werden können, die zu Demonstrationszwecken der Qualität der Renderengine im Open-Bereich dient:

Siehe auch 3D-Modellierung.


Anwendung Bearbeiten

NURBS sind bei der computergestützten Konstruktion (CAD) und Fertigung (CAM) beinahe unersetzlich und Teil zahlreicher Industriestandards, wie IGES (Initial Graphics Exchange Specification), STEP und PHIGS. Im Allgemeinen ist die interaktive Bearbeitung von NURBS-Kurven und -Flächen sehr intuitiv und vorhersagbar. Kontrollpunkte sind stets entweder direkt mit der Kurve oder Fläche verbunden oder wirken, als seien sie mit einem Gummiband verbunden. Eine Manipulation der Geometrieelemente kann (am offensichtlichsten bei Bézierkurven) direkt an den Kontrollpunkten durchgeführt oder durch übergeordnete Werkzeuge realisiert werden. Derartige Werkzeuge basieren zum Teil auf der Eigenschaft von NURBS, Kurven und Flächen unterschiedlicher Stetigkeit darstellen zu können.

Stetigkeitsanforderungen Bearbeiten

Hierbei werden unterschiedlich starke Stetigkeitsforderungen gestellt. Neben der üblichen  -Stetigkeit wird hier auch die geometrische Stetigkeit betrachtet:

  •   Positions-Stetigkeit
  •   tangentiale Stetigkeit
  •   Krümmungsstetigkeit

Positions-Stetigkeit Bearbeiten

  Positions-Stetigkeit gilt, wenn die Endpunkte zweier Kurven oder Flächen zusammentreffen. Trotzdem können Kurven oder Flächen sich in einem Winkel berühren, der zu einer scharfen Kante oder Ecke an dieser Stelle führt und Störungen bei Lichteffekten verursacht.

tangentialer Stetigkeit Bearbeiten

  Bei tangentialer Stetigkeit verhindert die Parallelität der Endvektoren von Kurven oder Flächen das Auftreten scharfer Kanten. Tangentiale Stetigkeit ist oftmals ausreichend, da die Beleuchtung derartiger Geometrien kontinuierlich und damit natürlich erscheint.

Krümmungsstetigkeit Bearbeiten

  Krümmungsstetigkeit herrscht bei gleichen Krümmungswerten im gemeinsamen Punkt von aneinander grenzender Kurven, respektive gemeinsamen Linien aneinander grenzender Flächen. Diese Stetigkeit ist beispielsweise notwendig für überströmte Flächen, um ein Ablösen der Strömung ausschließen zu können.

Höhere Stetigkeitsgrade Bearbeiten

Höhere Stetigkeitsgrade sind mit NURBS ebenfalls möglich. Die Stetigkeitsgrade stehen im Zusammenhang mit dem Grad der Polynome bei Bernsteinpolynome oder der [Konvexkombination|[Ordnung der Konvexkombination]].

Glatte Oberflächen Bearbeiten

Die Realisierung glatter Oberflächen erfordert NURBS-Flächen, die wenigstens  -Stetigkeit erreichen. Fehler in der Oberfläche können durch Beleuchtung und Reflexion detektiert werden. Eine Methode zur Bewertung einer Fläche basiert auf der Auswertung eines durch Ray Tracing oder Reflexion und Abbildung aufgenommenen Bilds einer Fläche mit weißen auf sie reflektierten Streifen, womit selbst die kleinsten Abweichungen der Fläche aufgedeckt werden können. Diese Methode stammt aus dem Prototypenbau im Automobilbereich, wo die Oberflächenqualität durch Überprüfung der Reflexionen von einem Neonlichthimmel auf der Karosserie sichergestellt wird.

Mathematische Beschreibung Bearbeiten

NURBS-Kurven und -Flächen haben eine Reihe interessanter Eigenschaften:

  • Sie sind invariant für projektive Transformationen.
  • Sie bieten eine gemeinsame mathematische Darstellung für sowohl analytische Standardformen (z. B. Kegelschnitte) als auch Freiformflächen.
  • Sie reduzieren den Speicheraufwand für geometrische Objekte (im Vergleich zu einfacheren Methoden).
  • Sie können durch numerisch stabile und präzise Algorithmen verhältnismäßig schnell ausgewertet werden.

Bemerkung - Verallgemeinerung Bearbeiten

NURBS-Kurven und -Flächen sind Verallgemeinerungen von nicht-rationalen B-Splines und nicht-rationalen und rationalen Bézier-Kurven und -Flächen. Die Aussage, dass NURBS-Kurven eine Verallgemeinerung von Bézierkurven sind, bedeutet, dass alle Bézierkurven NURBS-Kurven, aber nicht alle NURBS-Kurven Bézierkurven sind.

Grad der Basispolynome Bearbeiten

Eine NURBS-Kurve   ist definiert durch den Grad   ihrer Basispolynome (= Ordnung p der NURBS-Kurve – 1), eine Menge   gewichteter ( ) Kontrollpunkte   und einen Knotenvektor  . NURBS-Kurven und -Flächen sind Verallgemeinerungen von sowohl B-Splines als auch Bézierkurven und -flächen.

Unterschied zwischen Splinearten Bearbeiten

Der hauptsächliche Unterschied zu diesen beiden Splinearten ist die Gewichtung der Kontrollpunkte mit den Gewichten  . Durch die   werden NURBS-Kurven rational.

NURBS-Kurve Bearbeiten

Sei   eine   mit   Kontrollpunkten in dem Vektorraum. Ferner sei   ein Intervall. Eine NURBS-Kurve   vom Grad   ordnet jedem   die Linearkombination  

 

mit   und   zu.


Rationale Basisfunktionen Bearbeiten

Die rationale B-Spline-Basisfunktion   errechnet sich aus B-Spline-Basisfunktionen   des maximalen Grads der Basispolynome   und den zu den Kontrollpunkten zugehörigen Gewichten   zu

 .

B-Spline-Basisfunktionen Bearbeiten

Für die rationalen Basisfunktionen werden B-Spline-Basisfunktionen verwendet, die folgende Eigenschaften besitzen. Die B-Spline-Basisfunktion   mit   im Raum der Splines   mit Knotenvektor   und Maximalgrad   aus:

  • Nicht-Negativität:  
  • Lokaler Träger:   falls   und   falls  
  • Zerlegung der Eins:   für  

Veranschaulichung - Zerlegung der Eins Bearbeiten

 

Vier Funktionen  , die zu jedem Zeitpunkt   eine Zerlegung der Eins darstellen, d.h. für alle   gilt:

 

Effiziente Berechnung der B-Spline Basisfunktionen Bearbeiten

Die Basis-Splines können effektiv mit der Rekursionsformel von de Boor/Cox/Mansfield berechnet werden:[1]

Zerlegung des Definitionsbereiches in Teilintervalle Bearbeiten

Die NURBS-Kurve soll auf dem Intervall   definiert werden. Dazu zerlegt man das Intervall   in Teilintervalle  , wobei   und   ist.

Polynome vom Grad 0 - Indikatorfunktion Bearbeiten

Die B-Spline-Basisfunktion werden induktiv berechnet. Als Polynome vom 0 sind dies konstante Indikatorfunktionen für das Intervall   mit:

 

Induktive Berechnung der Polynome höheren Grades Bearbeiten

Seien die B-Spline-Basisfunktionen für den Grad   bereits definiert, dann erhält man die B-Spline-Basisfunktionen für den Grad   wie folgt für  :

 

Basisfunktionen vom Grad 1 Bearbeiten

Vom Grad 0 erhält man Indikatorfunktionen für ein Intervall. Für Grad 1 und äquidistanter Zerlegung der Intervallgrenzen entsteht aus zwei Indikatorfunktionen vom Grad 0 eine Dreiecksfunktion als B-Spline-Basisfunktion vom Grad 1 analog zur Faltung von zwei Funktionen f und g.  

Aufgabe 1 - B-Spline-Basispolynome Bearbeiten

Plotten/Zeichnen Sie den Graph für eine nicht äquidistante Zerlegung in Intervalle mit:

  •  
  • Berechnen Sie alle B-Spline-Basispolynome.

Bemerkung zur Bezeichnung Bearbeiten

Die Elemente des Knotenvektors heißen auch Knotenpunkte (engl. knots) und müssen die Bedingungen   und   erfüllen.

Ableitung der B-Spline-Basisfunktionen Bearbeiten

Zur Berechnung der Ableitung[2] eines B-Splines kann man obige Rekursionsformel mit der folgenden Vorschrift für   kombinieren:

 

Aufgabe 2 - Ableitungen der B-Spline-Basispolynome Bearbeiten

Berechnen Sie die Ableitungen für die Basispolynome der nicht-äquidistante Zerlegung in Intervalle mit:

  •  
  • Berechnen Sie alle stückweise definierten Ableitung der B-Spline-Basispolynome mit  !

Bemerkung Bearbeiten

Die Bedingungen an die Knotenpunkte   erlauben es, dass in der Rekursionsformel unter Umständen Null als Nenner auftritt (nämlich wenn   bzw.   gilt). Allerdings ist dann die Funktion   bzw.   automatisch die Nullfunktion. Auf die entsprechende Fallunterscheidung wird hier verzichtet, man ignoriere die entsprechenden Summanden in diesen Fällen (ersetze sie durch Null). Dies entspricht auch dem Grenzverhalten für z. B.  

Zerlegung der Eins Bearbeiten

Die rationale Basisfunktionen   stellen bei positiven Gewichten   Gewichtsanteil aus dem Interval   dar, mit dem der jeweilige Punkt   in der Konvexkombination   gewichtet wird.

  •   ist die mit den B-Spline-Basisfunktionen   errechnet Summe und
  •   ist dann der Anteil an der Summe  

Die   und die Summe   ändert sich mit der Zeit  .

Einfluss auf die Kontrollpunkte Bearbeiten

  • Wenn   ist, läuft die Kurve durch den Kontrollpunkt  . Dies gilt immer für   und  , dem Startpunkt bzw. Endpunkt der Kurve  .
  • Wenn   gilt, hat der Kontrollpunkt   zum Zeitpunkt   keinen Einfluss auf den Kurvenverlauf von  .


Aufgabe 3 - Rationale B-Spline-Basispolynome Bearbeiten

Berechnen Sie die alle rationale B-Spline-Basispolynome   der obigen nicht-äquidistante Zerlegung in den Intervallgrenzen und mit  :

  •   und
  •   als Gewichte

Stellen Sie die Funktionen mit Fallunterscheidung in den Intervallgrenzen dar.

Knotenvektoren Bearbeiten

Der Parameter   schaltet im Bereich des Knotenvektors

 

die einzelnen Segmente der Spline-Kurve aktiv. Die Elemente des Knotenvektors sind monoton steigend, wobei alle   sowie alle   sind.

Randbedingungen und Definitionen Bearbeiten

Kontrollpunkte

 
 
 
 

Knotenvektor Bearbeiten

Der Knotenvektor   besteht aus Parameterwerten  , die den Einfluss der Kontrollpunkte   auf die NURBS-Kurve festlegen. Die Anzahl der Knoten ist immer gleich der Anzahl der Kontrollpunkte plus dem Grad der Kurve plus eins ( ). Beispielsweise hat eine Kurve dritten Grades mit vier Kontrollpunkten acht Knoten (4 + 3 + 1 = 8). Für den Graphik-Designer sind Knoten gewöhnlich nicht hilfreich; sie werden nur für interne Berechnungen benötigt. Aus diesem Grund sind Knoten in vielen Graphik-Design-Programmen nicht änderbar oder überhaupt sichtbar.

Monotonie der Werte im Knotenvektor Bearbeiten

Die Werte des Knotenvektors müssen in aufsteigender Reihenfolge vorliegen. Damit ist (0, 0, 1, 2, 3) gültig, (0, 0, 2, 1, 3) dagegen nicht. Die einzelnen Knotenwerte haben keine Aussage für sich selbst; einzig und allein die Verhältnisse der Differenzen zwischen den Knotenwerten haben eine Bedeutung.

Äquivalenz von Knotenvektoren Bearbeiten

Sei   zwei Knotenvektoren mit monoton steigenden Komponenten d.h.  ,   für   heißen äquivalent, wenn mit   und   gilt:

 

Beispiele für äquivalente Knotenvektoren Bearbeiten

Als Beispiel für äquivalente Knotenvektoren kann man (0, 0, 1, 2, 3), (0, 0, 2, 4, 6), und (1, 1, 2, 3, 4) wählen, die alle die gleiche Kurve erzeugen:

 

Vielfachheit von Knotenvektoren Bearbeiten

Weiterhin muss die Vielfachheit eines Knotens kleiner-gleich sein als der Grad der Kurve (kein Knoten darf öfter als der Grad der Kurve auftauchen). Für NURBS ersten Grades ist jeder Knoten gepaart mit einem Kontrollpunkt.

Ordnung einer NURBS-Kurve Bearbeiten

Eine NURBS-Kurve ist von der Ordnung  , sie besteht aus Polynomen vom Grad  . Die Ordnung   einer NURBS-Kurve ist festgelegt durch die Anzahl benachbarter Kontrollpunkte, die die Kurve beeinflussen. Die Kurve setzt sich mathematisch aus Polynomen zusammen, deren Grad   eins kleiner als die Ordnung der Kurve ist ( ).


Beispiel - Ordnung einer NURBS-Kurve Bearbeiten

  • Also werden Kurven 2. Ordnung durch Polynome 1. Grades   dargestellt.
  • Kurven dritter Ordnung werden durch quadratische Polynome 2. Grades   und
  • Kurven vierter Ordnung, auch kubische Kurven genannt, werden mit Polynomen 3. Grades   dargestellt.

Die Anzahl   der Kontrollpunkte muss größer oder gleich der Ordnung   der Kurve sein.

Berechnungszeit - Kurven höherer Ordnung Bearbeiten

In der Praxis werden am häufigsten kubische Kurven gebraucht. Kurven fünften oder sechsten Grades sind manchmal nützlich, gerade für Ableitungen, Kurven höheren Grades werden in der Praxis aber nie benutzt, da sie zu internen numerischen Problemen führen und ihre Berechnung tendenziell unverhältnismäßig viel Berechnungszeit erfordert.

Einheitskreis Bearbeiten

Im Gegensatz zu nicht-rationalen Kurven, die nicht geeignet sind, Kreise darzustellen, klappt dies mit NURBS problemlos. Der Einheitskreis in der xy-Ebene kann beispielsweise als NURBS-Kurve vom Grad 2 mit Knotenvektor (0,0,0,1,1,2,2,3,3,4,4,4) und folgenden Kontrollpunkten und Gewichten konstruiert werden.

x y z Gewicht
1 0 0 1
1 1 0 √2 / 2
0 1 0 1
−1 1 0 √2 / 2
−1 0 0 1
−1 −1 0 √2 / 2
0 −1 0 1
1 −1 0 √2 / 2
1 0 0 1

NURBS-Flächen Bearbeiten

Während eine NURBS-Kurve ausschließlich in eine parametrische Richtung   aufgespannt ist, wird eine NURBS-Fläche durch zwei Parameter, genannt   und  , aufgespannt. Die Kurve kann durch Auswertung an unterschiedlichen Parametern im kartesischen zwei- oder dreidimensionalen Raum abgebildet werden. Analog erfolgt die Abbildung einer NURBS-Fläche im kartesischen Raum durch Auswertung mit verschiedenen Werten für zwei Parameter.

 

sind definiert durch ein Kontrollgitter   und die rationale Basisfunktion

 

mit einer zweidimensionalen Gewichtematrix  . Die zweite Dimension der Fläche   mit dem Parameter   wird geschaltet durch den analog zu   aufgebauten Knotenvektor

 

mit der Ordnung   und der Länge  .

Einfache Erklärung eines komplexen Sachverhaltes Bearbeiten

In den 1950er-Jahren hat Bézier die mathematische Formel entdeckt, mit der sich eine geschwungene Kurve beschreiben lässt. Die Kurve wird dabei durch wenige sogenannte Kontrollpunkte definiert. In der Folge hat sich herausgestellt, dass diese Bézierkurven noch nicht ausreichend sind, um beispielsweise einen Kreis exakt darzustellen. Daraufhin wurden mathematische Formeln entwickelt, bei denen die einzelnen Kontrollpunkte unterschiedlich stark (rational) auf den Kurvenverlauf einwirken können, die sogenannten B-Splines. Der Begriff Spline ist historisch und stammt aus dem Schiffbau.

Schiffsbau und Splines Bearbeiten

Linealartige biegsame Metallstreifen, sogenannte Straklatten (engl. splines), wurden seitlich mit Gewichten beschwert und konnten somit eine definierte Kurve darstellen. Mehrere dieser Kurven hintereinander stellten die Spanten dar, die wiederum den Rumpf des Schiffes ergaben.

Entstehung von B-Splines Bearbeiten

Später wurden dann mathematische Formeln entwickelt, die sowohl Béziers Formel als auch die B-Splines verallgemeinerten, die sogenannten „Non uniform rational B-Splines“. Damit kann man also beliebige Kurven darstellen und wenn man nicht nur eine Richtung („Länge“) wie bei einer Kurve, sondern eine zweite („Breite“) hinzufügt, können damit gekrümmte Flächen entsprechend des polynomialen Grades dargestellt werden.

Berechnungsaufwand für NURBS Bearbeiten

Theoretisch können diese Flächen beliebig komplex und groß sein. Da der Aufwand zur Berechnung der Formeln allerdings mit zunehmender Komplexität stark ansteigt und auch mit einem leistungsfähigen Computer nicht mehr in angemessener Zeit berechnet werden kann, werden kompliziertere Flächen durch mehrere aneinandergesetzte sogenannte Patches dargestellt. In der industriellen Produktion werden mittlerweile fast ausschließlich NURBS eingesetzt, um jede Art von herzustellendem Objekt (Joghurtbecher, Motorgehäuse, Sonnenbrillen usw.) mathematisch exakt abbilden zu können.

Literatur Bearbeiten

  • Les Piegl, Wayne Tiller: The NURBS Book. Monographs in Visual Communication. Springer, 2000.
  • David F. Rogers: An Introduction to NURBS With Historical Perspective. Academic Press, 2001.
  • Lyle Ramshaw: Blossoming: A connect-the-dots approach to splines. Research Report 19, Compaq Systems Research Center, Palo Alto CA June 1987.
  • James D. Foley, Andries van Dam, Steven K. Feiner, John F. Hughes: Computer Graphics – Principles and Practice. 2nd ed. Addison-Wesley, 1996.
  • David Salomon: Curves and Surfaces for Computer Graphics. Springer Science+Business Media, 2006, ISBN 0-387-24196-5.

Weblinks Bearbeiten

  • TinySpline – Open Source C-Programmbibliothek mit Bindings für verschiedene Sprachen

Siehe auch Bearbeiten

Seiteninformation Bearbeiten

Diese Lernresource können Sie als Wiki2Reveal-Foliensatz darstellen.

Wiki2Reveal Bearbeiten

Dieser Wiki2Reveal Foliensatz wurde für den Lerneinheit Kurs:Maßtheorie auf topologischen Räumen' erstellt der Link für die Wiki2Reveal-Folien wurde mit dem Wiki2Reveal-Linkgenerator erstellt.

Wikipedia2Wikiversity Bearbeiten

Diese Seite wurde auf Basis der folgenden Wikipedia-Quelle erstellt:

  1. http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/B-spline/bspline-basis.html
  2. http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/B-spline/bspline-derv.html