Zugriffspfad / Path

  1. Home
  2. Fachbereiche
  3. Informatik
  4. Personen
  5. Christoph Lü...
  6. Lehre
  7. Abschluss- und Projektarbeiten (Bachelor, Master, Diplom)

Hauptnavigation / Main Navigation

Abschluss- und Projektarbeiten (Bachelor, Master, Diplom)

Visualisierung Paradoxer Architektur

Durch den Film Inception sind Konzepte der paradoxen Achitektur, wie sie auch von dem Künstler Escher verwendet werden, wieder populär geworden. Die Darstellung von paradoxen Architekturen funktioniert deshalb, weil Bilder immer eine zweidimensionale Projektion eines dreidimensionalen Sachverhaltes sind. Auf diese Art lassen sich dredimensionale reale Modelle bauen, die unter einer bestimmten Perspektive aussehen wie eine paradoxe Architektur. Mit Methoden der Computergraphik lässt sich diese Vorgehensweise allerdings auf beliebige Perspektiven verallgemeinern. Zu diesem Zweck werden unterschiedliche Objekte einer Szene mit unterschiedlichen Projektionsmatrizen gerendert, die alle geforderten Nachbarschaftsbedingungen konsistent halten. Ziel dieser Arbeit ist es, ein solches System zu implementieren. 

Object Space Clipping auf der PSP

Die PSP ist in der Lage gegen die Near-Plane des Viewing Frustums zu clippen. Desweiteren wird ein guard band zur Verfügung gestellt. In vielen Fällen ist dies hinreichend. Auf der anderen Seite versagt diese Annäherung auch häufig. Clipping wird traditionell in der Graphik-Hardware nach der zentralen perspektivischen Transformation durchgeführt. Da die PSP über eine fixed functin pipeline verfügt, ist ein manueller Eingriff an dieser Stelle nicht möglich.

Ziel der Abschlussarbeit ist es einen object space clipper für die PSP zu schreiben, der gegen die top, bottom, left und right plane clipt. Dieser sollte auf Triangle-Strips funktionieren, da dies das Renderformat ist, was am häufigsten auf der PSP verwendet wird.

Implementation:

  1. Implementiere ein Testbett, in dem man ein Objekt mit dem Analogstick vor der Kamera bewegen kann.
  2. Führe mit der Boundingsphere des Objektes einen Vortest durch, ob ein detailliertes Clipping notwendig ist.
  3. Schreibe einen Clipping Algorithmus auf Sutherland-Hodgeman Basis, der PSP Triangle Strips clippen kannn. Überprüfe diesen an einem verkleinerten viewing frustum.
  4. Schreibe zuätzlich ein Analysemodul, das einzelne Dreiecke auf ihre Notwendigkeit zum Clipping analysiert.

Tiefenpuffererweiterung auf der PSP

Die PSP verfügt einen Tiefenpuffer von 16bit. Gerade für Outdoor Scenarien ist dies nicht hinreichend und führt häufig zu z-fighting Artefakten. Ein Herausschieben der Near Plane ist meist auch keine Lösung, da diese in 3rd person view häufig in den Hauptcharakter hereinschneidet.

Ziel dieser Arbeit ist es, einen 2 pass renderer zu implementieren, der den Hauptcharakter und die Umgebung mit zwei unterschiedlichen Near Planes zeichnet. Um den Tiefenpuffer konsistent zu halten, ist zwischen den beiden Passes ein Korrekturschritt notwendig. Hilfreich ist hierbei, dass der Tiefenpuffer als Textur gebunden werden kann und eine beliebige Textur dem System auch als Tiefenpuffer verkauft werden kann. In Kombination mit einer 16bit CLUT, die auf der PSP verfügbar ist, kann eine effektive Tiefenpufferkorrektur durchgeführt werden.

Implementation:

  1. Implementiere ein Testbed, dass eine weitreichende tesselierte Oberfäche renderet. Über dieser Oberfläche liegt eine zweite transparent gezeichnete Fläche. Unmittelbar vor der Kamera ist ein kleiner Würfel. Nun sieht man entweder wie die near plane in den Würfel schneidet oder die beiden Ebenen sich in der Entfernung einen z-fight liefern.
  2. Implementiere für Würfel und Umgebung einen 2 pass renderer mit unterschiedlichen near planes. Es kommt zu Tiefenpufferkonsistenzproblemen.
  3. Implementiere die Tiefenpufferkorrektur wie oben angedeutet.
Manfred Stüber,  1. April 2015