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.