Fisheye

fisheye_dslr

10mm Fisheye mit einem Film in der Größe 22,2×14,8mm

Mark hat mich eben animiert doch einmal ein Fisheye zu bauen. In der Patentdatenbank habe ich ein einfaches Fisheye mit einer Brennweite von 10mm gefunden, diesmal von Nikon. Die Tabelle war schnell abgetippt (natürlich mit Tippfehler, so dass ich erstmal kein Bild hatte). Das scharf Stellen funktionierte dann erstaunlich schnell. Das Ergebnis ist für den Film in DSLR-Größe berechnet.

Weitwinkel

So langsam beginnt bei meiner Diplomarbeit die Auswertungsphase. Da ich nicht nur das Zeiss Tessar T verwenden wollte, stellte sich mit die Frage woher ich die Daten für ein Objektiv bekomme. Gott sei Dank habe ich erst kürzlich die originalen Patentpapiere vom Kaiserlichen Patentamt für das Tessar gefunden, sonst wäre ich wahrscheinlich nicht auf die Idee gekommen bei den Patenten zu suchen. Dann stellte ich sogar fest, dass es freie Patentdatenbanken gibt (http://www.freepatentsonline.com)

In der oben genannten Patentdatenbank habe ich dann gleich Dutzende aktuelle Patente zu Objektiven gefunden. Daraus habe ich mir ein Patent vom Jannuar 2008 für ein 20mm Pentax-Weitwinkel herausgepickt. Es besteht aus 3 Gruppen mit insgesamt 8 Linsen. Den Text habe ich mir nicht durchgelesen, aber die Tabelle konnte ich für mein Vorhaben gleich 1:1 übernehmen. Dabei stellte sich heraus, dass dieses Objektiv offensichtlich ausschließlich für digitale Spiegelreflex-Kameras mit einem 22,2×14,8mm-Sensor gedacht ist. Die folgenden Bilder zeigen warum: links das Bild mit einem Film in 22,2×14,8mm und rechts mit einem klassischen 36x24mm Kleinbildfilm. Die Vignettierung ist schon echt heftig.

Spektrum im Griff II

Hier, wie versprochen die beiden Bilder durch das Teiss Tessar T. Links ohne, rechts mit Auftrennung des Spektrums (klicken zum Vergrößern).

Zeiss Tessar ohne 'lowdiscrepancy'
Zeiss Tessar mit 'xyz-lowdiscrepancy'

Spektrum im Griff

Nach diversen Fehlversuchen eine vernünftige Aufteilung des Spektrums zu finden und das letzte Bild diesbezüglich noch ein Fake war, ist es mir jetzt gelungen die chromatische Aberration abzubilden.

single_lens

Szene durch eine einfache Linse ohne chromatische Aberration.

Das erste Bild (anklicken zum Vergrößern) zeigt die Szene ohne chromatische Aberration. Es wird eine einfache Linse mit einer Brennweite von 60mm verwendet. Dies führt dazu, dass auch die sphärische Aberration und Astigmatismus stark auftreten. Dadurch existiert keine Schärfeebene.

single_lens_xyz

Szene durch eine einfache Linse mit chromatischer Aberration.

Das zweite Bild (anklicken zum Vergrößern) zeigt die gleiche Szene, mit den gleiche Parametern gerendert. Einziger Unterschied ist, dass die Strahlen jetzt in drei Sprektren zerlegt und unterschiedlich gebrochen werden. Dadurch entstehen die Farbsäume an den Kanten.

Aktuell rendert die Szene wieder mit und ohne chromatische Aberration unter Verwendung des Zeiss Tessar T. Ich bin sehr gespannt, wie das Ergebnis ist und ob eine Korrektur der optischen Fehler durch die Linsen im Vergleich zu den oben aufgeführten Beispielen funktioniert.

CIE-XYZ-Aufspaltung des Spektrums

Das folgende Bild wurde mit einer selbst entwickelten „bidirectional scattering distribution function“ (kurz BSDF) erzeugt. Hierbei wird der Strahl beim Aufreffen auf das neue Glasmaterial in drei Substrahlen aufgeteilt, die je auf eine der drei XYZ-Spektralfarben des CIE 1931-Modells begrenzt sind. Die resultierenden Farbwerte werden additiv zum entgültigen Farbwert des Pixels zusammengesetzt. Besonders ist, dass die Strahlen in den unterschiedlichen Glasmaterialien des Zeiss Tessar T auch unterschiedlich gebrochen werden. Als Grundlage für die unterschiedlichen Brechungsindizes werden die Maximalwerte der XYZ-Spektren bei 445 nm, 545 nm und 605 nm verwendet. Das entspricht in etwa den RGB-Werten.

tessar_cam_film_lowdiscrepancy_kombiniert

So langsam wird’s besser…

Für das folgende Bild wurden wieder Strahlen ausgehend vom Film zur Linse erzeugt. Um das Integral des Pixels und das Integral der Linse als Summe über die diskreten Bildpunkte darstellen zu können, müssen die Sample gleichmäßig verteilt sein. Daher habe ich mich für einen halfjittered Sampler entschieden.

Das zweite Problem war das Mapping von den u-v-Koordinaten auf die Linsenoberfläche. Dafür habe ich jetzt ein konzentrisches Mapping von Shirley (91) verwendet, das eine kleine Diskrepanz hat, also weitgehend Abstanderhaltend bezüglich der Punkte ist.

Das Ergebnis sehr ihr hier:

tessar_cam_film_lowdiscrepancy

Beim nächsten Eintrag ist hoffentlich meine BSDF für die chromatische Trennung fertig. Dann könnte das Bild schon erste chromatische Fehler aufweisen.

Na das ist doch schonmal was…

Moin, moin. Das folgende Bild habe ich heute Nacht rendern lassen. Hierbei wird die Strategie 1 verwendet, d. h. die Strahlen werden ausgehend von jedem Pixel des Films erzeugt. Der Unterschied zu dem weiter unten befindlichen Bild ist allerdings, dass die Strahlen nicht zufällig, sondern gleichmäßig über die Linse gestreut werden. Dadurch verschwindet das Rauschen fast vollständig.

Nach einem ersten Versuch, den ich Timo gezeigt habe, kam von ihm die Frage: „Ist denn im Objektiv schon eine Blende eingebaut?“. „Klar!“, meinte ich dazu, musste aber zugeben, dass dieser Aspekt in den bisherigen Bildern überhaupt nicht berücksichtigt wurde. Daher habe ich schnell mal eine kleine kugelförmige Lichtquelle in den hinteren Unschärfebereich platziert.  Und siehe da, ich habe ein sechseckiges Bokeh.

Goil…

tessar_cam_film_uniform_50-36_mit_lichtpunkt

Ich muss unbedingt auch nochmal eine feine leuchtende Linie in den Hintergund platzieren. Ich glaube man erhält auch einen kräftigen Doppellinien-Effekt, das sogenannte Nihsen-Bokeh.

Strategie Nr. 2

So, wie bereits erwähnt, folgt nun ein Bild mit der zweiten Strategie.

tessar_cam_backlens_norotsolid40Die Strategie für dieses Bild war folgende:

  1. Bestimme einen Punkt auf der dem Film zugewandten Seite der letzten Linse. Der Punkt entspricht einem Pixel auf dem Film, so dass ich am Ende eine Verteilung der im oben zu sehenden Bild 640 x 480 Bildpunkte auf der Linse enthalte.
  2. In Richtung der Punktnormalen bilde eine Halbkugel, über die Strahlen mit zufälliger Richtung erzeugt werden.
  3. Berechne zu diesen Strahlen den Schnittpunkt mit dem Film.
  4. Dann drehe die Richtung um und lasse den Farbwert des Strahls ganz normal berechnen.

Das Problem ist, dass nicht gewährleistet werden kann, dass jeder Punkt des Films getroffen wird. Zudem verfehlen viele Strahlen den Film. Daher habe ich für das oben dargestellte Bild die Halbkugel schon auf einen Kegel mit einem Innenwinkel von 40° beschränkt. In diesem Kegel ist der Film in der aktuellen Anordnung immer abgedeckt, aber die Anzahl der Fehltreffer ist nicht mehr so groß. Trotzdem rauscht das Bild deutlich stärker, als bei Strategie 1.

Yes we can …

Das folgende Bild zeigt mein erstes „virtuelles Foto“ mit meinem virtuellen Tessar.

Kamera mit Tessar

Ok, das rauscht vielleicht ein bisschen viel. Aber ich kann mir ja einen anderen „Film“ bauen. Dies ist allerdings schon der 3. und bisher beste Ansatz. Diese waren der Reihe nach:

  1. Ausgehend von jedem Bildpunkt werden Strahlen über der Hemisphäre des Bildpunktes erzeugt. Da die Strahlen in jede Richtung der oberen Halbkugel geschickt werden, erhalte ich in 99% der Fälle das Schwarz des Kameragehäuses.
  2. Wie 1., nur dass der Winkel zur Senkrechten über dem Film auf ein Minimum reduziert wurde. Dabei treffe ich aber mit einem Film in 35mm x 24mm und einer im Verhältnis dazu kleinen inneren Linse mit 16mm Durchmesser auch locker 85% Gehäuse.
  3. Dieser, im Bild oben zu sehende Ansatz, verteilt alle Strahlen nur in Richtung der letzten Linse. Dieser Ansatz liefert wesentlich weniger Rauschen. Allerdings ist er physikalisch nicht mehr korrekt, da der Raumwinkel zum Rand des Films abnimmt und dabei trotzdem die gleiche Menge Licht den Film erreicht. Eine Vignettierung entsteht so jedenfalls nicht. Jetzt gibt es 2 Optionen: a) am Rand entsprechend weniger Strahlen erzeugen oder b) die Helligkeit der Strahlen entsprechend des Raumwinkes dämpfen. Die zweite ist natürlich besser, weil kontinuierlich. Die erst ist diskret und würde bei 16 Samples pro Pixel sicherlich Ringe erzeugen.

So … genug jetzt. Jetzt muss ich erstmal Ansatz 4 ausprobieren.

Jens