Malen mit Zahlen, Teil 0 – die (inverse) Lochkamera

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.

Abbildung mit einer Lochkamera

Eine Lochkamera besteht prinzipiell aus einem dunklen Raum – z.B. dem Inneren einer Papprolle – und einem kleinen Loch in einer Wand, durch das das Licht einer hellen Szene von außen einfallen kann. Steht man in einer raumgroßen Camera obscura kann man dann an der gegenüberliegenden Wand ein Bild der Szene außen sehen. Befestigt man Fotopapier an dieser Wand, kann man damit direkt fotografieren.

Damit wir nicht in unser Modell hineinklettern müssen, ist die dem Loch gegenüberliegende Wand durch einen transparenten Schirm ersetzt. Der Schirm streut das Licht, sodass wir das Bild von hinten sehen können.

Weil ein Lichtstrahl, der von oben aus der Szene durch das Loch fällt unten auf den Schirm trifft und umgekehrt, steht das Bild auf dem Kopf. Ebenso sind links und rechts vertauscht.

Mathematisch ist das Loch exakt punktförmig. Ein Lichtstrahl aus der Szene durch das Loch legt den Bildpunkt am Schirm daher eindeutig fest. Damit können wir den Strahlensatz anwenden und erhalten

\displaystyle\frac{B}{G}=\frac{b}{g} \quad\text{bzw.}\quad \displaystyle B=\frac{G}{g}\cdot b ,

wobei G und B die Gegenstands- bzw. Bildgröße sind und g und b die Gegenstands- bzw. Bildweite.

Verdoppeln wir z.B. bei sonst gleichen Bedingungen die Bildweite b, verdoppelt sich auch die Bildgröße B, wie in Abb. 2a gezeigt.

Abb. 2a: Durch Verdopplung der Bildweite verdoppelt sich auch die Bildgröße.

Die zweite Möglichkeit das Bild zu vergrößern besteht wie bei allen Kameras darin, dass wir die Gegenstandsweite verringern, also näher mit der Kamera an das Objekt herangehen (s. Abb. 2b).

Abb. 2b: Auch durch Halbierung der Gegenstandsweite verdoppelt sich die Bildgröße.

Um die Bildgröße B zu verdoppeln, könnten wir entweder die Bildweite b verdoppeln, oder die Gegenstandsweite g halbieren. Je nachdem, was einfacher ist. Wie wir in einem der nächsten Teile sehen werden, sind die Bilder dreidimensionaler Objekte dann trotzdem nicht ganz gleich, weil die Strahlen in Abb. 2a und 2b nicht im selben Winkel einfallen (Tele vs. Weitwinkel). Man sieht das ein bisschen, wenn man die Bilder der grünen Büsche vergleicht.

In den Abb. 1, 2a und 2b stehen die beiden grünen Büsche auf derselben Grundlinie wie das Haus. Weil sie aber näher an der Kamera sind, werden sie stärker vergrößert und haben auf dem Schirm nicht dieselbe Grundlinie!

Im Gegensatz zu einer Linse kommt in der Gleichung einer Lochkamera keine Brennweite vor. Die Tiefenschärfe ist daher prinzipiell unendlich.

Eine selbstgebastelte Lochkamera

Wer gerade eine Papprolle herumliegen hat, kann sich leicht eine Lochkamera bauen. Abb. 3 zeigt zwei Kameras, wobei ich den Schirm einmal mit 5 cm und einmal mit 10 cm Abstand zum Loch in die Rolle geklebt habe.

Abb. 3: Zwei röhrenförmige Lochkameras, mit unterschiedlichen Schirm-Loch-Abständen.

Die beiden Rollen hatten schon einen Metallboden; dadurch war es leicht, das Loch mit einer kleinen Schraube als Körner zu stanzen.

Abb. 4: Die Löcher der beiden Kameras aus Abb. 3.

Beispielfotos

Als Beispiel habe ich die Szene aus Abb. 4 genommen.

Abb. 4: Die Originalszene, aufgenommen mit der Linsenkamera eines Handys.

Mit Bildweite b=5\,\text{cm} ergibt sich Abb. 5. Weil das Handy auf die Körnung des Schirms fokussiert hat, ist das Bild nicht so scharf wie in Wirklichkeit.

Abb. 5: Loch-Schirm-Abstand: 5 cm.

Wird die Bildweite auf b=10\,\text{cm} verdoppelt, wird auch das Bild größer (und der Bildausschnitt kleiner). Einen ähnlichen Effekt erhält man mit einem Tele-Zoom.

Abb. 6: Loch-Schirm-Abstand: 10 cm

Die Abb. 5 und 6 habe ich mit einem Handy gemacht und dabei das offene Ende der Röhre mit einem Tuch abgedeckt. Dadurch war das Fokussieren schwierig.

Inverse Lochkamera

Wir haben schon gesehen, wie die Verschiebung des Schirms das Bild – geometrisch und physikalisch – beeinflusst. Aber was würde passieren, wenn wir den Schirm wie in Abb. 7 vor das Loch schieben könnten?

Abb. 7: Eine inverse Lochkamera, bei der der Schirm vor dem Loch ist. Physikalisch sinnlos, aber mathematisch brauchbar. Zumindest ist das Bild jetzt aufrecht und links/rechts sind nicht vertauscht.

Physikalisch ist das natürlich sinnlos. Die Lichtstrahlen würden aus allen Richtungen durch den Schirm gehen und nicht nur in Richtung Loch – wir könnten den Schirm auch einfach irgendwo in die Luft halten und würden nur den Schirm selber sehen.

Geometrisch ist die Sache aber nicht so schnell vorbei. Mittels des Strahlensatzes könnten wir auch hier ein »Bild« konstruieren, das sogar aufrecht steht. Aufgrund der Konstruktion gilt auch weiterhin für die Vergrößerung

\displaystyle\frac{B}{G}=\frac{b}{g} .

Bis auf das jetzt aufrechte Bild sind alle Abbildungseigenschaften geometrisch dieselben wie bei der Lochkamera. Man spricht daher auch von der inversen Lochkamera.

Diese inverse Lochkamera ist die am meisten verwendete Kamera für perspektivisch korrekte 3D-Computergraphik – sie wird dann einfach nur als Kamera bezeichnet. Üblicherweise ist der Schirm rechteckig, wie in Abb. 8 gezeigt.

Abb. 8: Eine inverse Lochkamera mit rechteckigem Schirm, auch »near plane« genannt.

Das Loch unserer inversen Lochkamera wird häufig als Augpunkt bzw. eye point bezeichnet und der Schirm als near plane. Das gesamte Raumvolumen, das von unserer Kamera ohne Spiegelungen gesehen werden kann (viewing volume) ist grün eingerahmt. Die far plane dient dazu, weit entfernte Objekte abzuschneiden, um den Rechenaufwand zu reduzieren. Im Prinzip könnte sie auch im Unendlichen liegen. Weil der grüne Bereich ein Pyramidenstumpf ist, wird dieser Bereich auf Englisch frustum genannt.

Der Teil vom Loch (eye point) zum Schirm (near plane) ist unsere Kamera! Wenn wir die in einer Szene platzieren, sollten wir darauf achten, dass der Schirm nicht im Inneren eines Objektes landet (Kollisionserkennung)!

Abb. 9 zeigt zwei inverse Lochkameras in einer einfachen Szene. Die Spitzen der orangenen Pyramiden sind ihre Augpunkte. Die Bildweite der Kamera links oben ist b=1\,\text{LE} (Längeneinheit) und entsprechend klein und perspektivisch verzerrt ist das Bild. Die Kamera rechts hat Bildweite b=3\,\text{LE}, wodurch etwas hinein gezoomt und die Verzerrung geringer wird. Die Längsseiten beider Kameras sind parallel zum Bodengitter.

Abb. 9: Zwei inverse Lochkameras (orange) in einer Szene und ihre Bilder. Gegenüberliegende Seiten des Würfels haben dieselbe Farbe. Die Schirme der zwei Kameras sind gleich groß. Der Abstand der Gitterlinien ist 1 Längeneinheit.

Vertauschen wir die Bildweiten der beiden Lochkameras, ergibt sich Abb. 9b.

Abb. 9b: Die Bildweiten der beiden Kameras aus Abb. 9 sind vertauscht.

In perspektivischen Bildern erscheinen parallele Linien nicht mehr als parallel, wie man an den Bildern des Gitters schön sieht. Die Abb. 9 und 9b selbst sind nicht perspektivisch.

Schaut man sich die Google-Bildersuche zu »OpenGL frustum« an, sieht man oft ein Auge oder gar eine Kamera im eye point gezeigt. Natürlich kann man das Bild einer Kamera mit einer zweiten abfilmen. Was das zur Erklärung der Funktionsweise der ersten Kamera beitragen soll, ist mir allerdings unklar.

Diskussion

Als Teenager Ende der 1980er habe ich immer wieder Programme zur 3D-Darstellung in Computer-Zeitschriften gefunden und abgetippt. Das waren sowohl einfache Raytracing-Bilder wie in Abb. 10 als auch Polyeder-Darstellungen wie in Abb. 11. Wirklich verstanden habe ich die Sache damals nicht, und mich oft gefragt:

»Wie zum Teufel kommt die Kugel in den Rechner?«

Vielleicht hilft diese Serie ja dem einen oder anderen obige Frage zu beantworten.

Interessanterweise wird gar nicht so viel Mathematik benötigt: Strahlensatz, Kreuzprodukt und Skalarprodukt (Beleuchtung!). Transformationsmatrizen machen es einem leichter, Objekte in der Szene zu positionieren – sie sind für die eigentliche Darstellung aber nicht so wesentlich. In den meisten HTLs sind auch die Matrizen Schulstoff.

Abb. 10: Ein einfaches Raytracing-Bild.
Abb. 11: Ein Polyeder aus vielen Dreiecken. Daten aus c’t 7, S. 210 (1990): »Wind in der Kiste«.

Weiter mit Teil RS1.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.