Das ist der erste Teil der Serie über 3D-Computergraphik, der sich speziell mit Rasterung/Schattierung beschäftigt. Obwohl es natürlich Überschneidungen gibt, möchte ich hier nicht auf spezielle Bibliotheken wie OpenGL oder Direct3D eingehen. Es wird aber wahrscheinlich noch eine Unterserie zu WebGL geben.
Die Standardkamera
Bevor wir etwas rastern können, müssen wir zunächst Punkte im Raum auf unsere Kamera projizieren. Fürs Erste verwenden wir dazu die in Abb. 1 gezeigte inverse Lochkamera (s. Teil 0).
Abb. 1: Unsere Standard-Lochkamera. Der »eye point« (das Loch) ist im Ursprung und der Schirm liegt in der Ebene z = -1. Die Kreuze auf den Achsen haben jeweils eine Längeneinheit Abstand.
Dieser Beitrag beginnt eine neue Serie über 3D-Computergraphik. Speziell werden wir uns mit zwei Techniken – Raytracing und Rasterung/Schattierung – beschäftigen.
Im nullten – gemeinsamen – Teil geht es um die einfachste Kamera für perspektivische Abbildungen: die (inverse) Lochkamera bzw. Camera obscura. Ein röhrenförmiges Modell ist in Abb. 1 schematisch dargestellt.
Abb. 1: Eine röhrenförmige Lochkamera bildet ein Motiv ab. G, B sind Gegenstands- bzw. Bildgröße und g, b sind Gegenstands- bzw. Bildweite. Das Bild steht auf dem Kopf.
In den bisherigen Teilen haben wir uns mit der Fourier-Analyse reeller Signale beschäftigt. Dabei haben wir rotierende Zeiger unterschiedlicher Frequenzen addiert und die Projektion des Summenzeigers ergab unser zeitabhängiges Signal (s. Teil 1).
Der Summenzeiger hat dabei recht komplizierte Kurven in der komplexen Ebene beschrieben (s. speziell Teil 2). In diesem Teil stellen wir nun die Frage, wie wir geschlossene, ebene Kurven in eine Summe von rotierenden Zeigern verwandeln können.
Einfache Beispiele für solche Kurven sind Lissajous-Figuren wie in Abb. 1 gezeigt. Wir betrachten dabei die Bahnkurve eines Punktes, dessen x– und y-Koordinaten allgemeine Sinus-Funktionen der Zeit t sind. Wenn der Quotient der beiden Frequenzen rational ist, sind die Bahnen geschlossen – und damit periodisch.
Abb. 1: Bahn eines Punktes, dessen x– und y-Koordinaten allgemeine Sinus-Funktionen sind. Speziell ist und , was eine Periodendauer von bedeutet.
Wenn wir ein Signal in eine Fourier-Reihe »entwickeln«, müssen wir herausfinden, welche Frequenzen in diesem Signal stecken. Die Formeln dazu haben wir schon in Teil 3 gesehen. Aber warum funktioniert das – speziell bei gemessenen Signalen – wirklich?
Die Polardarstellung komplexer Zahlen (s. Teil 3) ist besonders gut geeignet für Multiplikationen, Divisionen, Potenzen und Wurzeln komplexer Zahlen. Additionen und Subtraktionen sind nicht so einfach.
Mit etwas gutem Willen, geht es aber doch (s. Abb. 1) und führt zu interessanten Resultaten.
Abb. 1: Addition in Polardarstellung; hier am Beispiel .
(2018-05-21 überarbeitet) Wechselspannungen und Wechselströme sind im einfachsten Fall sinusförmig. Warum? Weil kompliziertere periodische Signale die Summe von Sinus-Funktionen unterschiedlicher Frequenzen sind (s. die Serie über Fourier-Reihen). Die einfachste Möglichkeit ist also ein Sinus mit einer Frequenz.
Da die Spannung u(t) (in V) und die Stromstärke i(t) (in A) vom selben elektromagnetischen Wechselfeld erzeugt werden, haben sie auch dieselbe Frequenz. Allerdings können sie zeitlich verschoben sein, müssen also nicht dieselbe Phase haben. Ein solches Beispiel ist in Abb. 1 gezeigt.
Abb. 1: Zeitlicher Verlauf von Spannung u und Stromstärke i bei einer idealen Luftspule.
In den ersten beiden Teilen (Teil 1 und Teil 2) haben wir rotierende Zeiger addiert, deren Frequenzen jeweils ganzzahlige Vielfache der Frequenz des langsamsten Zeigers waren. Die Projektion des Summenzeigers führt zu einer periodischen Funktion, mit einer Periodendauer, die gleich der Periode des langsamsten Zeigers ist.
Jetzt drehen wir die Sache um: Wir haben eine reelle, periodische Funktion s (das Signal; um nicht wieder f für die Funktion und die Frequenz zu verwenden), deren Periodendauer gleich T ist. Entsprechend ist ihre Grundfrequenz und die Grundkreisfrequenz . (Als Tauist verwende ich wie immer die Kreiskonstante .) Dieses Signal s wollen wir als die Projektion der Summe rotierender Zeiger
In Teil 1 haben wir gesehen, dass die Projektion der Summe rotierender Zeiger eine periodische Funktion ergeben kann, wenn die Frequenzen der einzelnen Zeiger ganzzahlige Vielfache der Frequenz des langsamsten Zeigers sind.
In diesem Beitrag werden wir ein paar weitere Beispiele sehen und uns die komplexen Amplituden der einzelnen Zeiger genauer ansehen. Die Menge dieser einer Funktion f ist das Spektrum von f.
In Teil 6 der Serie über komplexe Zahlen haben wir Zeiger besprochen, die sich mit konstanter Geschwindigkeit im Kreis drehen. Die Projektion so eines Zeigers entlang der reellen Achse ergab eine zeitabhängige Funktion – die allgemeine Sinus-Funktion.
Was passiert, wenn wir – wie in Abb. 1 gezeigt – mehrere solche Zeiger addieren? Welche Funktionen ergeben sich aus der Projektion des Summenzeigers?
Abb. 1: Addition verschieden schnell rotierender Zeiger. Der rote Summenzeiger läuft nicht mehr auf einem Kreis, sondern entlang einer Epizykloide.
Im letzten Teil haben wir gesehen, wie rotierende Zeiger mit der Sinus-Funktion zusammenhängen. Wir konnten die Kreisfrequenz , die Amplitude , die Phase oder den Mittelwert vorgeben.
Oder wir geben alle vier Parameter gleichzeitig vor, was uns zur allgemeinen Sinus-Funktion
führt. Ein Beispiel dafür zeigt Abb. 1.
Abb. 1: allgemeine Sinus-Funktion mit Amplitude , Kreisfrequenz , Phase und Mittelwert .