Rotationen mit Quaternionen in der Computergrafik

dungen werden unter anderem in Computerspielen oder Filmen der Unterhaltungs- branche benötigt. ... Die Quaternionen sind eine Erweiterung der komplexen ...
1MB Größe 12 Downloads 401 Ansichten
Thomas Koch

Rotationen mit Quaternionen in der Computergrafik Eine Demonstration am Beispiel OpenGL

Thomas Koch

Rotationen mit Quaternionen in der Computergrafik Eine Demonstration am Beispiel OpenGL

Universitätsverlag Rhein-Ruhr, Duisburg

Umschlaggestaltung UVRR Titelfoto Spirale © iStock.com/Anettelinnea (2005) Bibliografische Information der Deutschen Nationalbibliothek: Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://www.ddb.de abrufbar. Copyright © 2016 by Universitätsverlag Rhein-Ruhr OHG Paschacker 77 47228 Duisburg www.uvrr.de Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. ISBN

978-3-95605-031-2

Satz

UVRR

Quaternions have been an unmixed evil to those who have touched them in any way. Sir William Thomson

Kurzfassung Quaternionen sind eine vierdimensionale Algebra, die bereits im 19. Jahrhundert von Sir William Rowan Hamilton entwickelt wurde. Diese Arbeit zeigt, wie man diese Mathematik als Alternative zu Eulerschen Rotationsmatrizen in der Computergrafik nutzen kann. Dar¨uber hinaus erkl¨art die Arbeit, wie das Ph¨anomen Gimbal Lock entsteht und wie es mit Hilfe der Mathematik der Quaternionen verhindert werden kann. Des weiteren werden zwei Demonstrationsprogramme beschrieben, mit denen sich die Rotation mittels Quaternionen in OpenGL zeigen l¨asst.

Abstract Quaternions are a four-dimensional algebra, which already was developed by Sir William Rowan Hamilton in the 19th century. This work shows, how to use this mathematics as an alternative to Eulers rotation matrizes in computer graphics. Furthermore the work explains how the phenomenon Gimbal Lock occurs and how it can be avoided by using the quaternion mathematics. Besides, two demonstration programs are specified, in which rotation with Quaternions in OpenGL can be shown.

Inhaltsverzeichnis 1 Einleitung

1

1.1

Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

1.2

Aufgabenstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

1.3

Existierende Arbeiten . . . . . . . . . . . . . . . . . . . . . . . . . .

3

1.4

Gliederung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

2 Mathematische Grundlagen

13

2.1

Rechnen mit Vektoren . . . . . . . . . . . . . . . . . . . . . . . . . .

13

2.2

Rechnen mit Matrizen . . . . . . . . . . . . . . . . . . . . . . . . . .

17

2.3

Die komplexen Zahlen . . . . . . . . . . . . . . . . . . . . . . . . .

22

2.4

Historie der Quaternionen . . . . . . . . . . . . . . . . . . . . . . . .

29

2.5

Entwicklung der Quaternionen . . . . . . . . . . . . . . . . . . . . .

31

3 Gimbal Lock und Quaternionen

39

3.1

Definition von Gimbal Lock . . . . . . . . . . . . . . . . . . . . . .

39

3.2

Gimbal Lock und Rotation mit Eulerschen Rotationsmatrizen . . . . .

44

3.3

Rotation mit Quaternionen . . . . . . . . . . . . . . . . . . . . . . .

49

3.4

Vor- und Nachteile der Rotationsverfahren . . . . . . . . . . . . . . .

58

3.5

Interpolation mit Quaternionen . . . . . . . . . . . . . . . . . . . . .

60

4 Einsatz in der Praxis

67

4.1

Quaternionen in der Luft- und Raumfahrt . . . . . . . . . . . . . . .

67

4.2

Quaternionen in der Robotik . . . . . . . . . . . . . . . . . . . . . .

68

4.3

Sonstige Anwendungsgebiete . . . . . . . . . . . . . . . . . . . . . .

69

5 Analyse

71

5.1

Computer Based Training und Computerunterst¨utzter Unterricht . . .

71

5.2

Anforderungen an die Demonstationsprogramme . . . . . . . . . . .

73

Inhaltsverzeichnis 6 Umsetzung 6.1 Benutzte Werkzeuge . . . . . 6.2 JOGL Funktionsweise . . . . 6.3 Struktur der Programme . . . 6.4 Aufbau der Benutzeroberfl¨ache 6.5 Implementierung der Module .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

77 77 81 83 87 91

7 Abschließende Betrachtungen 105 7.1 Performanzbetrachtung . . . . . . . . . . . . . . . . . . . . . . . . . 105 7.2 Ausblick und Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 A Codebeispiele

109

Literaturverzeichnis

127

Abbildungsverzeichnis

131

Listings

133

Index

135

1 Einleitung 1.1 Motivation Der Schwerpunkt der Computergrafik ist die k¨unstliche Erzeugung von Bildern und deren Darstellung. In der 3D-Computergrafik wird ein solches Bild unter Ber¨ucksichtigung der drei Raumdimensionen erstellt; es wird versucht, Objekte der realen Welt in einer k¨unstlichen Szene abzubilden. In einer solchen Szene k¨onnen Gegenst¨ande, je nach Verwendungszweck, stark vereinfacht oder m¨oglichst detailliert dargestellt werden. Vereinfachte Darstellungen werden beispielsweise benutzt, um dem Betrachter komplexe Vorg¨ange verst¨andlicher und eing¨angiger zu machen; naturgetreue Abbildungen werden unter anderem in Computerspielen oder Filmen der Unterhaltungsbranche ben¨otigt. All diese Szenen werden durch mathematische Verfahren im Computer erzeugt, gerendert und dargestellt. W¨unschenswert ist allerdings nicht nur die einfache Darstellung einer solchen Computergrafik, sondern auch eine Interaktion mit den Elementen der Szene, um Verhalten und Ereignisse der realen Welt simulieren zu k¨onnen. Solche Interaktionen verlangen mathematische Methoden, um Objekte transformieren zu k¨onnen und diese neu zu rendern. Dabei gibt es Verfahren, die so oft benutzt werden, dass sie in den Grafikchip eingebaut sind, um die Berechnungszeit zu verk¨urzen und damit die Szene schneller darstellen zu k¨onnen. Diese Verfahren benutzen Transformationsmatrizen, um Objekte zu verschieben, zu skalieren und zu rotieren. Doch kann es bei der Rotation mit einer Matrix zu Problemen kommen: Das Objekt wird nicht wie erwartet rotiert, es trudelt oder rotiert um eine falsche Rotationsachse; das Ph¨anomen Gimbal Lock tritt auf. Ein solches Verhalten ist a¨ ußerst unerw¨unscht, daher existieren alternative Verfahren, um Objekte zu rotieren, bei denen Gimbal Lock nicht auftritt. Diese Verfahren k¨onnen auch von der Computergrafik in die reale Welt u¨ bertragen werden, denn auch dort k¨onnen diese Ph¨anomene bei der Rotation auftreten.

1

1 Einleitung

Ein solches alternatives Verfahren l¨asst sich mit der Mathematik der Quaternionen realisieren. Quaternionen k¨onnen anstelle von Rotationsmatrizen benutzt werden, um Gegenst¨ande in einer Szene zu drehen. Die Quaternionen sind eine Erweiterung der komplexen Zahlen und bieten eine einfache M¨oglichkeit, Orientierungen im dreidimensionalen Raum darzustellen und sind damit ohne große Probleme in der 3DComputergrafik einsetzbar. Mit dieser Arbeit m¨ochte ich die Mathematik der Quaternionen aus den komplexen Zahlen entwickeln, die wichtigsten Rechenregeln auff¨uhren und zeigen, warum Quaternionen sowohl bei der Rotation in der Computergrafik als auch in anderen Anwendungsbereichen ben¨otigt werden und wie sich die bisher bekannten Verfahren der Rotation mit Matrizen ersetzen lassen. Bei der Literaturrecherche zu diesem Thema ist mir aufgefallen, dass es widerspr¨uchliche Angaben in der Namensgebung der Quaternionen gibt. Der Begriff kommt aus dem Lateinischen, das Wort quaternio bedeutet soviel wie Vierheit. Daraus wurde der deutsche Begriff der Quaternionen entwickelt. Der Singular von den Quaternionen ist das Wort Quaternion. In circa 50 Prozent der deutschen Literatur wird von dem Quaternion gesprochen, die andere H¨alfte benutzt den weiblichen Genus die Quaternion. In neueren W¨orterb¨uchern, so auch in der Internet-Ausgabe des Dudens, findet man: Qua|ter|ni|on die; -en: Zahlensystem mit vier komplexen Einheiten (Math.)[1]. Aufgrund dieses Eintrages habe ich mich entschieden, in meiner Arbeit in der Einzahl den Femininum die Quaternion zu benutzen.

1.2 Aufgabenstellung Der Gegenstand dieser Arbeit ist die Entwicklung zweier kleiner Demonstrationsprogramme, mit denen der Unterschied zwischen der Rotation mit Eulerschen Rotationsmatrizen und der Rotation mit Quaternionen erkenntlich gemacht werden soll. Die Programme sollen ein hohes Maß an Interaktivit¨at besitzen und dadurch eine Verwendung in der Vorlesung der Computergrafik finden sowie zur Benutzung durch Studierende geeignet sein. Die Programminhalte sollen explorativ und intuitiv bedienbar sein. In

2