B-Splines in der Spieleentwicklung: GameDev.net erklärt Kurvenmathematik

GameDev.net veröffentlichte am 10. August 2013 den zweiten Teil seines Leitfadens zu B-Splines. Der Beitrag richtet sich an Entwickler, die Kurven für 3D-Grafik, Objektpfade und andere mathematische Aufgaben in Spielen besser verstehen wollen.

B-Splines sind stückweise definierte polynomiale Kurven. Sie können mehrere Kurvenabschnitte mit kontrollierter Kontinuität verbinden und bilden eine Grundlage für NURBS. Das Verfahren wird deshalb auch im Umfeld von 3D-Werkzeugen wie Blender, 3ds Max und Maya verwendet. Für die technische Basis der Spieleoptimierung bietet der ältere Beitrag zur SIMD-Mathematik für Spiele einen passenden Anschluss.

Diagramm der Bernstein-Basisfunktionen in der B-Spline-Erklärung - Bild: GameDev.net
Bernstein-Basisfunktionen als Teil der B-Spline-Erklärung – Bild: GameDev.net

Kontinuität zwischen Kurvenabschnitten

Bei verbundenen Kurven beschreibt die Kontinuität, wie glatt der Übergang ausfällt. Treffen zwei Abschnitte nur am selben Endpunkt zusammen, entspricht das einer Kontinuität der Ordnung C0. Stimmen zusätzlich die ersten Ableitungen überein, entsteht C1. Gleiche zweite Ableitungen führen zu C2. Das ist für Kamerafahrten, Objektpfade und die Darstellung glatter Oberflächen wichtig, weil sichtbare Knicke oder abrupte Richtungswechsel vermieden werden.

Der Leitfaden vergleicht diese Eigenschaften mit Bézier-Kurven. Deren Kontrollpunkte können zwar ebenfalls miteinander verbunden werden, höhere Kontinuität erfordert jedoch zusätzliche Bedingungen an den angrenzenden Punkten. B-Splines erlauben eine höhere Ordnung der Kontinuität, die Berechnung wird dadurch aber komplexer.

Knotenvectoren und rekursive Basisfunktionen

Für die Berechnung setzt der Beitrag eine B-Spline-Kurve aus Kontrollpunkten und rekursiv bestimmten Basisfunktionen zusammen. Der Knotenvector enthält dabei eine nicht fallende Folge von Parametern. Aus diesen Werten und dem Grad des Polynoms ergibt sich, wie stark einzelne Kontrollpunkte in einen Kurvenabschnitt einfließen.

Der zweite Teil legt damit die mathematischen Begriffe für den folgenden Abschnitt der Serie fest. Dort sollen Algorithmen und Abkürzungen für die praktische Berechnung behandelt werden. Der aktuelle Beitrag bleibt bei den Grundlagen und erklärt, warum B-Splines für 3D-Kurven, Flächen und Objektpfade in der Spieleentwicklung relevant sind.

Weitere News

Weitere News

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein