Punktbasiertes Rendering (Splatting)

Zeitraum: 10/2011 - 05/2012    Technik: C++, OpenGL, GLSL, VTK
Beschreibung: Beim üblichen Rendern von Polygonnetzen sind die Verbindungen zwischen Modellpunkten bekannt. Dadurch entsteht eine geschlossene Fläche. Außerdem dienen die Konnektivitäten beispielsweise dazu, die Normalenrichtungen zwischen den Punkten zu approximieren. Im Fall des punktbasierten Renderings fehlen jegliche Flächeninformationen, da die Verbindungen zwischen den Punkten nicht bekannt sind. Diese Situation liegt etwa bei 3D-Scans vor. Ziel des punktbasierten Ansatzes ist es, anhand von 3D-Punkten und ihren Normalen ein geschlossenes Modell zu rendern. Das Splatting-Verfahren bietet eine Lösung, indem man für jeden Punkt eine Ellipse mit Ausrichtung der Normalen rendert. Damit wird die Oberfläche um bekannte Punkte angenähert. Ein weiteres Problem ist die Beleuchtung der Oberfläche. Um ausführlichere Informationen über dieses Projekt zu erhalten, habe ich die Dokumentation angehängt. Das Ziel des Projekts war es, das Splatting Verfahren mit drei verschiedenen Shading Methoden (Flat, Gouraud, Phong) in das Visualization Tookit (VTK) zu integrieren. Die Arbeit führte ich als wissenschaftliche Hilfskraft an der Hochschule fort, da ein externes Unternehmen die implementierten Shader zur Darstellung ihrer 3D-Scans verwenden wollte.
Herausforderungen: Für die Integration in VTK musste das standardmäßige Rendering mit dem eigenen Splatting-Verfahren ausgetauscht werden. Eine gute Dokumentation über die Erweiterung von VTK ist jedoch nicht vorhanden, weshalb ich die meiste Zeit mit dem Lesen von Quellcode verbracht habe.
Downloads:
Dokumentation (PDF)
Shader (Gouraud Splatting)

Bilder

Vorschaubild des Projekts Splatting. Vorschaubild des Projekts Splatting. Vorschaubild des Projekts Splatting.