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

Linse 2.0

Jappadappadoo…

jetzt habe ich es geschafft. Für meine DA ist nun die Fresnel’sche Reflexion auf die Linse adaptiert. Anhand des Brechungswinkels wird nun entschieden, wieviel Licht reflektiert und wieviel transmittiert wird. Die Transformation erfolgt dann ganz normal mithilfe des Snellius’schen Brechungsgesetzes. Passend dazu habe ich auch die Reflexion und Brechung am Rand der Linse implementiert.

Das ganze habe ich in einem generischen Linsenmodell umgesetzt, so dass ich jetzt beliebige Linsen bauen kann. Einfach nur die beiden Radien der Linsenoberflächen und die z-Koordinaten der Schnittpunkte mit der optischen Achse angeben – fertig.

Zudem habe ich jetzt die Möglichkeit die Reflexionsfarbe und die Transmissionsfarbe anzugeben, so dass ich „beschichtete“ und farbige Linsen simulieren kann.

Ich hab mal ein einfaches Bild angehängt.

Jens

Glaslinsen

PBRT für Visual Studio 2008

Da ich für meine Diplomarbeit den Raytracer PBRT „Physically Based Rendering: From Theory to Implementation“ (http://www.pbrt.org) einsetze, dabei aber das Visual Studio 2008 verwenden möchte, habe ich mir die Arbeit gemacht und die Bibliotheken für zlib und openexr mit Visual Studio 2008 unter Vista neu übersetzt. Anschließend habe ich ein neues Projekt in Visual Studio angelegt und die PBRT-Sourcen der Version 1.03 eingearbeitet. Die Bibliotheken und das Projekt mit den Sourcen könnt ihr hier herunterladen: /download/pbrt.zip

Installation

  1. CygWin installieren. Dabei zusätzlich zur Standardinstallation aus dem Abschnitt „Development“ die Pakete flex und bison auswählen.
  2. Das Paket in einem beliebigen Projektverzeichnis auspacken.
  3. Das Unterprojekt core Übersetzen. Dabei wird ein Fehler auftreten, der durch die aktuelle Version von flex verursacht wird. Hier einfach die Zeile
    b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
    … in die Zeile
    b->yy_is_interactive = 0;
    … korrigieren. Anschließend kann das Projekt komplett übersetzt werden.
    HINWEIS: Paralleles Übersetzen führt in aller Regel zu Fehlern, daalle Subprojekte in das gleiche Verzeichnis schreiben und dabei in die gleiche Progammdatenbank nutzen. Einfach in den Einstellungen das parallele Übersetzen auf einen Prozess beschränken und das Problem ist weg.
  4. Solution öffnen und übersetzen.

Ausführen

Im Verzeichnis pbrt/win32 befinden sich zwei Batch-Dateien, die eine Kommandozeile öffnen, bei welcher der PATH und der PBRT_SEARCHPATH auf das Release bzw. Debug-Verzeichnis verweisen.

Nach dem öffnen der Konsole wechselt man nun einfach in das Verzeichnis mit der Szenenbeschreibung und ruft pbrt.exe <scene>.pbrt auf.

Viel Spaß

Update (25.01.2009):
In der letzten ZIP-Datei bzw. im Projekt fehlte noch der Spot als Lichtquelle – habe ich wohl vergessen. Mit dem aktuellen Paket, das jetzt zum Download zur Verfügung steht, war ich jedoch in der Lage alle dem Buch beiliegenden Beispielszenen zu rendern.

Update (27.02.2009):
Habe das Problem mit Punkt 3 (s.o.) in den Griff bekommen. Die aktualisierte Version steht jetzt zum Download zur Verfügung.

Meine DA

Da ich jetzt endlich mit meiner Diplomarbeit anfange, möchte ich euch ein bisschen über das, was ich gerade treibe, berichten. Der Arbeitstitel lautet:

Nachbildung objektivinduzierter Seiteneffekte für die virtuelle Fotografie

Damit will ich in meiner Diplomarbeit ein bisschen die Effekte nachbilden, die Hersteller von Kameras und Objektiven seit jeher eleminieren wollen. Als erstes Kernthema habe ich mir die chromatische Aberration herausgegriffen.

lens1

Um die CA abbilden zu können musste ich in einem ersten Schritt eine Linse nachbilden. Der erste Prototyp besteht lediglich aus zwei impliziten Kugelfunktionen. Damit lässt sich der Schnittpunkt eines Strahls mit der Linse direkt berechnen. Zur Kontrolle habe ich die Linse zunächst vor die klassische Lochkamera „gehalten“.

lens2

Im zweiten Schritt habe ich die Lochkamera eliminiert und die Strahlen ausgehend vom Film auf die Kreisscheibe der Linse zufällig verteilt. Da die Linse einen größeren Durchmesser als der Film hat und keine Blende existiert, ist der Bereich der Fokussierung sehr klein.

lens3

Im dritten Schritt kam dann zum Prototyp der erste Ansatz der chromatischen Aberration hinzu. Dazu habe ich den Strahl so modifiziert, dass er nur noch Träger des roten, blauen oder grünen Anteils der endgültigen Farbe war. Den drein unterschiedlichen Farbkomponten habe ich dann (zugegebenermaßen zu sehr) unterschiedliche Brechungsindizes verpasst. Das Ergebnis hab mich ehrlich gesagt nicht so umgehauen – aber genau hier soll ja das Potential für die Dipolmarbeit stecken.

Sobald ich wieder neue Bilder habe, melde ich mich.

Jens

Essen fassen

Bin grad ein wenig in der Küche gestanden, Rindersteak mit Kartoffelpüree gabs. Rindersteak mit Salz und Pfeffer gewürzt und Olivenöl bestrichen. Das Püree mit Zitrone und Parmesan verfeinert. Lecker wars. Und weil das hier ein fotoaffines Blog ist:

Feststellung: Ich brauch schönere Teller.

Noch ein Buch? Ich hab doch schon eins…

Passend zur grade beendeten Frankfurter Buchmesse heute mal zwei Buchempfehlungen.

Beide Bücher sind in der dpi-Reihe bei Addison-Wesley erschienen.

  1. Joe McNally: Der entscheidende Moment
    Kein klassisches Fotolehrbuch, eher eine Sammlung an Erlebnissen und Erfahrungen zu bestimmten Fotos die McNally während seiner Zeit als Fotograf gemacht hat, angereichert mit Tipps, Empfehlungen und Anekdoten. Das alles ist reich bebildert und in einem flüssigen, humorvollen Stil geschrieben. Die deutsche Übersetzung ist erstaunlich gut, Joes Art kommt gut rüber. Flüssiger Lesestoff, allerdings wohl nichts für einen absoluten Neueinsteiger.
    Joe bloggt übrigens auch: http://www.joemcnally.com/blog/
  2. Scott Kelby: Glorreiche 7 für Photoshop CS3
    Ein weiteres Photoshop-Buch? Im Prinzip ja, aber eigentlich auch nicht. Ja, klar, das Thema des Buches ist Photoshop, aber die Herangehensweise ist neu. Man lernt im Buch ganze 7 Techniken. Ja, nur 7. Und mit diesen 7 Techniken, wenn man sie beherrscht, kann man unglaublich viel aus Bildern herausholen. Diese 7 Techniken werden in 21 Lektionen  geübt und wiederholt, so daß man, wenn man das Buch durchgearbeitet hat, diese Techniken im Schlaf beherrscht. Die Fotos, anhand derer die Techniken erklärt werden, kann man aus dem Netz herunterladen und das sollte man auch tun und tatsächlich das Buch erstmal mit diesen Bildern durcharbeiten. Wer immer schon mal wissen wollte wie zum Teufel so wundervolle Farben in Fotos zustande kommen oder wie verdammt noch mal die Lichtstimmung so dermaßen gut rüberkommt, der braucht dieses Buch. Und für knappe 25 EUR ist es dazu nicht einmal sonderlich teuer.
    Selbstverständlich bloggt auch Scott: http://www.scottkelby.com/blog/

Auf der Buchmesse war es übrigens verdammt voll und scheinbar gehört es zum guten Ton dort eine Sense oder ein andres Klingengerät mit sich herumzutragen. Jaja, die Comics und deren Leser *g*, die haben für den ein oder anderen Farbtupfer dort gesorgt. Und voll wars, aber lohnenswert, wenngleich die IT- bzw. Fotobuch-Verlage eher spärlich vertreten waren. Speziell lohnenswert war der Stand des deutschen Fotobuchpreises, wenngleich mir die prämierten Lehrbücher eher nicht so zugesagt haben. Dafür die Bildbände umso mehr.

Umzug abgeschlossen…

So … ich habe heute die restlichen Beiträge aus 2008 umgezogen und alles mit HighSlide JS verstrickt. Die 3 „Hallo Welt“-Artikel von Dezember 2007 habe ich nicht mehr mit umgezogen (oder möchte noch jemand ein ‚Frohes neues Jahr‘ haben 🙂 ?).

Tja… jetzt muss ich nur noch dazu kommen auch mal ein bisschen was zu schreiben.

Jens