Project "PhotoPolis"

Idee

Visualisierung einer Foto-Datenbank in einer virtuellen 3D-Umgebung. Es soll dynamisch eine Stadt generiert werden, durch deren Straßen navigiert werden kann. Die Gebäude der Stadt werden mit Fotos texturiert und nach Jahr und Monat sortiert angeordnet.

PhotoPolis

Straßen

Es soll eine temporale Navigation zwischen Aufnahmen unterschiedlicher Tage ermöglicht werden. Die Straßen sind in einem Schachbrettmuster angeordnet. Vertikal (auf dem Stadtplan; für den User: Nord-Süd-Richtung) verlaufen die Jahre, horizontal die Monate (s.Abb.). Dies bedeutet, dass man sich die Weihnachten unterschiedlicher Jahre mittels Bewegen in vertikaler Richtung ansehen kann.

Häuser

Die Monate werden in äquidistante Zeitabschnitte unterteilt. Pro Zeitabschnitt wird ein Haus erstellt. Das Haus repräsentiert die Bilder, die in dieser Zeit aufgenommen wurden. Die Höhe des Hauses wird durch die Anzahl der Bilder festgelegt (eine Höheneinheit enspricht einer bestimmten Anzahl von Bildern). Auf der Außenwand eines jeden Stockwerks wird ein Photo dargestellt. Jede Seite des Gebäudes zeigt in einem Stockwerk das gleiche Bild. So wird gewährleistet, dass ein Betrachter, der durch die Staßen geht, auch alle Bilder sehen kann. Die maximale Höhe liegt bei ca. 15 Stockwerken.

Navigation

Der Betrachter "geht" in klassischer Ego-Shooter-Manier durch die Straßen und kann sich frei bewegen. Der Betrachter kann nach oben und unten, nach links und rechts schauen. Optional könnten Strassenschilder oder Hausnummern der Orientierung dienen
  • Schematische Darstellung einer Stadt:
    Schematische Darstellung einer Stadt

Technik

  • Das Auslese-Programm "PhotoToTexture" wird in JAVA implementiert.
  • Das Hauptprogramm "PhotoPolis" wird in C++ mithilfe von OpenGl/GLUT implementiert.
  • Die Metadaten der generierten Texturen werden in einem XML-File gespeichert.

Programmablauf

  • Das Programm sucht in dem durch den Benutzer spezifizierten Ordner (und entsprechenden Unterordnern) nach Bildern.
  • Beim Lesen der Bilder wird festgehalten wie viele Jahre die Bibliothek umfasst.
  • Es wird eine Datenstruktur angelegt, die Bilder zu Zeitabschnitten (ein Haus) zuordnet.
  • Jedes Bild wird auf die gleiche Größe skaliert.
  • Für jedes Haus wird die Höhe festgelegt.
  • Beginn des Renderloops: Hintergrund und Strassen zeichnen sich dynamisch und Häuser zeichnen sich mit den Texturen.

Design / Software-Architektur

  • da noch einige wichtige Design-Entscheidungen fehlen, hier nur eine sehr frühe (und grobe) Version eines Klassendiagramms:
early draft of the CityOfPhotos-ClassDiagram
Dieses Diagramm soll im weiteren Verlauf der Implementierung regelmässig auf den neusten Stand gebracht werden! -- MatthiasSchicker - 22 Jun 2006

Weitere Ideen

  • Aufgrund der Höhe der Gebäude sind die oberen Texturen nicht immer erkennbar. Daher hat der Fußgänger ein Fernglas dabei mit dem er an die Texturen heranzoomen kann.
  • Landmarken zur Erleichterung der Orientierung z.B. auf Freiflächen positioniert
  • Die Stadt liegt nicht in einer Ebene, sondern in den wilden Schluchten San Franciscos.
  • Dynamische Größen von Quartern
  • Die Stadt steht auf einer Insel. Außen rum ist das (nächtliche?) Meer
  • Schattenwurf
  • Bump Mapping für Straße (Nachbilden von Asphalt)
  • Die Bibliothek wird nicht mehr in feste Zeitabschnitte aufgeteilt. Es gibt ein Algorithmus, der Bilder die zu einem Event gehört gruppiert. Diese neuen Bildgruppen werden dann als einzelne Häuser dargestellt. Nachteil: Die "Hausnummern" sind nicht mehr kontinuierlich; Die Anzahl von Häusern pro Monat ist nicht mehr konstant.
  • Speicherung der skalierten Texturen (Kein Zugriff auf Originaldaten). => volle Portabilität der Texture-Library.
  • Mit einer Taste kann der User Gebäude oder Texturen taggen (Metadaten).

Häuserarchitektur

  • Vorschlag für die Häuserarchitekturen:

Häuser-Architektur 1 Häuser-Architektur 2 -- TilmanBeer - 28 Jun 2006

Dokumentation

Tastenbelegung:
  • w, a, s, d, W, A, S, D, GLUT_KEY_UP, GLUT_KEY_DOWN, GLUT_KEY_LEFT, GLUT_KEY_RIGHT - in die jew. Richtung bewegen
  • f - Taschenlampenmodus (Flashlightmode)
  • pressed q,Q - Bewegen mit 200 km/h (Speedmode)
  • h, H, GLUT_KEY_F1 - Hilfe
  • GLUT_LEFT_BUTTON - Selektion eines Gebäudes / einer Textur
  • GLUT_KEY_F4 - Mausmodus wechseln
  • pressed GLUT_RIGHT_BUTTON - indirekter Mausmodus
  • Enter - Bilder als Slideshow anzeigen
  • m,M, Tabulator - Karte einblenden (Mapmode)
  • Leertaste - Jetpack-Modus (Fliegen ist noch mit Tasten O,o und L,l realisiert)

Aktuelles

TODOs

  • TODO: Clipping der Texturen verbessern
  • TODO: Stadtschild zu Beginn "fallen lassen"
  • TODO: Stadtgrenzen. Bewegungsstopp in X, Y und Z-Richtung? (Matthias)
  • TODO: Kollisionsdetektion, auf Gebäuden stehen? (Matthias)
  • TODO: Springen zu Positionen im Stadtplan aus der Map heraus
  • TODO: Credits mit Kameraflug in ner guten Photodatenbank, als Demo
  • TODO: Funktion zum Durchschalten der Bilder im Previewbereich rechts unten (links/rechts Taste?)
  • TODO: Start von PhotoPolis aus photopolisstarter (Julius) DONE
  • TODO: Fortschrittsbalken im photopolisstarter, bei dem Texturexport (Julius) DONE (noch ein Bug vorhanden)
  • TODO: Nur max. 250 Bilder sollen pro Woche exportiert werden (Julius) DONE
  • TODO: Anmelden bei Google code (code.google.com) oder Sourceforge
  • TODO: Seperate Webseite mit Installer
  • TODO: Lauffähig für MAC (Julius)
  • TODO: Stadttexturen in JPEGS konvertieren, auf devIL umstellen. (Tilman & Matthias) DONE
  • TODO: Mergen von zwei Photobibliotheken zur gemeinsamen Ansicht in einer Stadt
  • TODO: Texturerstellung beschleunigen (Julius) DONE
  • TODO: Quellcode Kommentierung
  • TODO: Installer für Lieschen Müller
  • TODO: Sortierung des XML Exports und effizienteres Lesen der Texturen (Sortierung XML DONE Julius)
  • TODO: Im Map-Mode hellere und dunklere Straßen abwechseln, ebenso für die Flächen

Aktueller Screenshot

PhotoPolis

Präsentation

PhotoPolis Version 1.0

-- TilmanBeer - 06 Aug 2006

Weiterführendes / Links

-- TilmanBeer - 19 Dec 2006
Topic attachments
I Attachment Action Size Date Who Comment
AbgabePhotoPolis.zipzip AbgabePhotoPolis.zip manage 2146.2 K 06 Aug 2006 - 12:20 TilmanBeer Code vom 06.08. Version 1.0
CityOfPhotos.pptppt CityOfPhotos.ppt manage 215.0 K 07 Jun 2006 - 14:01 TilmanBeer Powerpoint-Präsentation
PERF.JPGJPG PERF.JPG manage 53.8 K 21 Jun 2006 - 17:30 TilmanBeer Auswertung des Performance-Tests
PhotoPolis-Endpräsentation.pptppt PhotoPolis-Endpräsentation.ppt manage 1831.0 K 03 Aug 2006 - 11:01 TilmanBeer Schlußpräsentation
PhotoPolis.pptppt PhotoPolis.ppt manage 1384.0 K 25 Jul 2006 - 12:59 TilmanBeer Präsentation zur Projektvorstellung
PhotoPolis.zipzip PhotoPolis.zip manage 7724.4 K 06 Jul 2006 - 08:27 MatthiasSchicker Code vom 06.07.
PhotoPolis_all.jpgjpg PhotoPolis_all.jpg manage 80.3 K 03 Aug 2006 - 11:00 TilmanBeer Klassendiagramm PhotoPolis
Stadtplan.jpgjpg Stadtplan.jpg manage 107.1 K 03 Aug 2006 - 10:42 TilmanBeer Schematische Darstellung einer Stadt
architecture_houses_01_v01.JPGJPG architecture_houses_01_v01.JPG manage 41.2 K 28 Jun 2006 - 14:39 TilmanBeer Häuser-Architektur 1
architecture_houses_02_v01.JPGJPG architecture_houses_02_v01.JPG manage 44.5 K 28 Jun 2006 - 14:39 TilmanBeer Häuser-Architektur 2
class_diagram_v01.jpgjpg class_diagram_v01.jpg manage 32.9 K 22 Jun 2006 - 07:27 MatthiasSchicker early draft of the CityOfPhotos-ClassDiagram
performanceTest.xlsxls performanceTest.xls manage 173.5 K 21 Jun 2006 - 17:28 TilmanBeer Auswertung des Performance-Tests
photoPolis.zipzip photoPolis.zip manage 1747.4 K 29 Jun 2006 - 08:17 MatthiasSchicker Code vom 29.06.
screenshot.jpgjpg screenshot.jpg manage 366.5 K 03 Aug 2006 - 10:56 TilmanBeer aktueller Screenshot
title.JPGJPG title.JPG manage 104.5 K 12 Jul 2006 - 18:29 TilmanBeer Titelbild
Topic revision: r45 - 19 Dec 2006, TilmanBeer
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Medieninformatik-Wiki? Send feedback