3D Modeller / Engine

Zeitraum: 09/2010 - 09/2011    Technik: Java, OpenGL, GLSL
Beschreibung: Das Modellierungsprogramm erlaubt dem Benutzer beliebig viele Modelle mithilfe des Obj-Formats zu importieren. Dabei wird ein Szenengraph aufgebaut, welcher per Drag and Drop manipuliert werden kann. Jedes Objekt kann dann verschoben, rotiert und skaliert werden. Außerdem stehen verschiedene Shader zur Verfügung, deren Eigenschaften, wie Farbe und Textur, ebenfalls anpassbar sind. Im Modellierungsmodus ist es möglich ein Vertexpunkt mit seiner Nachbarschaft zu selektieren und zu verschieben. Weiterhin kann man ein Mesh glätten, ohne dabei die Anzahl der Vertexpunkte zu erhöhen, und sich Löcher innerhalb des Meshes anzeigen lassen. Diesen Teil des Projekts entwickelte ich für ein Modul meines Studiums. Eine ausführliche Dokumentation finden Sie bei den Downloads.
Da dieses Projekt sozusagen mein "Liebling" ist, versuche ich es ständig zu erweitern. Mit der Zeit verlagerte sich der Schwerpunkt von der Modellierung zur Grafik. Mittlerweile können durch ein eingebautes Deferred Shading System viele Lichtquellen gleichzeitig in der Szene platziert werden, ohne stark an Performance zu verlieren. Zusätzlich stehen noch ein Nebeleffekt sowie ein Effekt für Tiefenunschärfe zur Verfügung. Für den Schattenwurf wird das Shadow Mapping Verfahren mit einem Percentage Closer Filter verwendet, um die Kanten zu glätten. Desweiteren wird nun Normal Mapping unterstützt und Texture Splatting für das Rendern von Terrain eingesetzt.
Herausforderungen: Die grundsätzliche Herausforderung dieses Projekts ist die Programmierung auf unterster Ebene, da ich keine anderen Frameworks benutzen möchte. Der Import von Obj-Dateien plus der Aufbau der Halbkantenstruktur, die für Modellierungszwecke zwingend benötigt wird, hat sich als besonders knifflig herausgestellt. Aus diesem Grund werden zu diesem Zeitpunkt auch nur die einfachsten Features des Obj-Formats unterstützt. Die Implementierung des Shadow Mappings in Verbindung mit dem Deferred Shading plus diversen anderen Features hat mich ebenfalls mehr Zeit gekostet als erwartet.
Downloads:
Dokumentation (PDF)
Codeschnipsel
Ausarbeitung über Shadow Mapping

Bilder

Vorschaubild des Projekts 3D Modeller / Engine. Vorschaubild des Projekts 3D Modeller / Engine. Vorschaubild des Projekts 3D Modeller / Engine. Vorschaubild des Projekts 3D Modeller / Engine. Vorschaubild des Projekts 3D Modeller / Engine. Vorschaubild des Projekts 3D Modeller / Engine. Vorschaubild des Projekts 3D Modeller / Engine. Vorschaubild des Projekts 3D Modeller / Engine. Vorschaubild des Projekts 3D Modeller / Engine.