[zurück]

Basketball

[vor]

Um aus den Gleichungen für die Schnittlinie eine Textur zu machen müssen wir die Koordinaten der Punkte erst einmal in Kugelkoordinaten (siehe Anhang A) umwandeln.

Was bringen uns die Kugelkoordinaten? Wir tragen die Winkel phi und lambda in ein ebenes rechtwinkliges Koordinatenkreuz ein.


Abb. 55

Das Rechteck, das dabei entsteht, ist die Abwicklung der Kugel. Die Abmessungen des Rechtecks sind durch den Wertebereich der Winkel phi und lambda festgelegt, d.h. es hat eine Breite von 2 pi und eine Höhe von pi.

Mit Hilfe der Gl. 9-128/129/130 können wir die Schnittlinie berechnen die ja auf der Oberfläche der Kugel bzw. des Basketballs liegt. Über die Kugelkoordinaten wickeln wir diese Schnittlinie ab und erhalten eine Textur. Die Berechnung überlassen wir dem Plugin.


Abb. 56

Die Textur sieht dann so aus. Aus dem Spline haben wir ein Sweep-NURBS gemacht damit die Linie eine Breite bekommt. Die Größe der Textur beträgt 2513*1257 Pixel. Diese Textur mappen wir auf eine Kugel und rendern zwei Ansichten.


Abb. 57

Wie man sieht hat die Linie auf der Kugel eine unterschiedliche Breite. Dies liegt an der Verzerrung bei der Kugelprojektion. Je näher die Linie den Polen kommt desto stärker die Verzerrungen.

Jetzt fehlen nur noch die geraden Linien für die Basketballtextur. Dazu benutzen wir einen kreisförmigen Spline den wir mit Hilfe eines Plugins um die Kugel legen und mit Hilfe der Kugelkoordinaten wieder abwickeln.


Abb. 58

Den linken Kreis hat das Plugin berechnet, für den rechten Kreis verschieben wir eine Kopie um den Faktor pi. Um später auf der Kugel eine schwarze durchgezogene Linie zu bekommen füllen wir die entsprechenden Stellen aus.


Abb. 59

Für den Basketball benötigen wir aber noch eine zweite Linie die gegenüber der ersten auf der Kugel um 90 Grad verdreht ist. Dazu nehmen wir im Prinzip Abb. 59 und verschieben sie um pi/2.


Abb. 60

Jetzt machen wir aus Abb. 59 und Abb. 60 ein Bild.


Abb. 61

Diese Textur erzeugt auf einer Kugel zwei sich kreuzende Meridianlinien. Für die Basketball Linie ist sie aber nicht geeignet, dafür müssen wir sie noch um pi/4 verschieben.


Abb. 62

In Abb. 62 kopieren wir die Basketball Linie aus Abb. 56.


Abb. 63

Jetzt mappen wir die Textur auf eine Kugel und schauen uns das Ergebnis an.


Abb. 64

Die Meridianlinien sind perfekt, selbst an den Polen gibt es keine Verzerrungen. Das kann man von der anderen Linie leider nicht sagen. Wir haben erst nach der Kugelabwicklung der Linie eine Breite gegeben. Um diesen Fehler zu vermeiden müßten wir der Linie schon auf der Kugel eine Breite geben. Das ist aber mathematisch nicht ganz so einfach.

Wir versuchen es einmal anders und schauen uns die Linie auf der Kugel von der Seite an.


Abb. 65

Dabei ist deutlich zu erkennen wie dicht die Linie den Polen kommt. Wenn wir die Linie ein bischen verdrehen sieht das schon besser aus.


Abb. 66

Diese Drehung bauen wir mit Hilfe der Rotationsmatrizen in das Plugin ein. Durch die Drehung verändert sich die Textur aus Abb. 56 wie folgt.


Abb. 67

Jetzt müssen wir nur noch die zwei fehlenden Linien hinzufügen, dazu kopieren wir Abb. 59 in Abb. 67 und fügen noch eine waagerechte Linie hinzu die den Äquator bildet.


Abb. 68

Um die Qualität der Textur beurteilen zu können mappen wir sie wieder auf eine Kugel.


Abb. 69

Im Vergleich zu Abb. 64 ist das Ergebnis perfekt. Beim Material sollte kein MIP-Mapping verwendet werden da es dadurch an den Polen zu Verzerrungen kommt. Bei dieser Texturgröße ist auch keine Interpolation erforderlich.


[zurück] [Inhaltsverzeichnis] [vor]