Dies sind die archivierten Webseiten des Lehrstuhls für Programmierung und Softwaretechnik (PST).
Die Seiten des Software and Computational Systems Lab (SoSy) finden Sie auf https://www.sosy-lab.org/.

Erweiterung der Jad 3D-Engine

Bearbeiter: offen
Aufgabensteller: Prof. Dr. Wirsing
Betreuer: Matthias Hölzl.
Vorkenntnisse: Sehr gute Programmierkenntnisse.

Die Jad Engine (Jade) ist eine auf dem .Net-Framework basierende Open Source 3D-Engine die z.B. als Grundlage für Simulationen, Spiele oder die wissenschaftliche Datenvisualisierung dienen kann.

Im Rahmen zweier Diplomarbeiten wurde am PST-Lehrstuhl eine 3D-Engine mit Geländeeditor entworfen und in der Programmiersprache Dylan implementiert. Dabei kamen fortschrittliche Implementierungstechniken zur Anwendung, z.B. Level of Detail-Berechnung durch Shader-Programme, oder Verwendung einer modifizierten Form des OPTICS-Algorithmus zur Optimierung des Szenegraphen.

Um den Einsatz in anderen Projekten zu ermöglichen und einige Probleme mit der Dylan-Plattform zu umgehen sollen diese Erweiterungen in Jade implementiert werden. Außerdem soll Jade um einige in modernen Graphikengines übliche Features erweitert werden. Mögliche Themenbereiche sind u.a.:

  • Terrain-Rendering für große Außenräume. (In Bearbeitung)
  • Erweiterung des Szenenmanagements, z.B. durch Portale, BSP-Bäume.
  • Programmierbares GUI-System
    Es soll ein in Jade eingebettetes GUI-System entwickelt werden, das die gängigsten Widgets und Container unterstützt und eine Definition der GUI in XML erlaubt.
  • Verbesserung des Scripting-Systems, Anbindung an die KI.
    Im Moment ist Scripting für Jade in C#, VB.NET und Boo möglich indem die wichtigsten Events der Engine (Tastatureingaben, Initialisierung, Render-Schleife) von Skripten gesteuert werden können. Als Erweiterungen sind geplant: (1) Scripting von allen Objekten der Engine und (2) eine Konsole, in der der Benutzer Skripte eingeben und editieren kann. Optional ist auch eine Einbindung von weiteren Skriptsprachen in die Scripting-Engine möglich.
  • Netzwerkunterstützung für Echtzeit Multiuser-Anwendungen
    Die Engine soll durch Client-Server Netzwerkunterstützung auf der Basis der UDP- und TCP-Protokolle erweitert werden. Dabei sollen die üblichen Mechanismen zur Reduktion bzw. Maskierung von Latenzen (Interpolation, Prediktion) eingesetzt werden. Optional können auch Features wie Server-Promotion eingebaut werden.
  • Automatische Generierung von Navigationsgraphen für die KI
    Hier sollen durch Analyse der Levelgeometrie automatisch Navigationsnetze erstellt werden, die der KI die Navigation durch Graphensuchalgorithmen ermöglichen. Diese Aufgabenstellung hängt eng mit der Triangulation von Polygonen zusammen. Kenntnisse in Computergeometrie sind daher zur Bearbeitung des Themas hilfreich aber nicht unbedingt Voraussetzung.
  • Verbesserung des JadEd Szeneneditors
    Der JadEd Szeneeditor befindet sich noch in einer frühen Entwicklungsstufe. Im Rahmen dieser Arbeit soll das Applikationsframework des Editors erweitert werden. Dabei kommen moderne Technologien aus der Windows Anwendungsentwicklung, wie die Windows Presentation Foundation (WPF/Avalon) zum Einsatz.
  • Erweiterung des Animationssystems
    Hierbei handelt es sich um eine anspruchsvolle Aufgabe, da dazu auch der Import von Collada-Dateien in Jade verbessert werden muss. Zielsetzung ist ein einfach zu bedienendes System um Animationen zu importieren, zuzuweisen und abzuspielen.
Die meisten dieser Themenvorschläge können sowohl als Projektarbeit als auch als Diplomarbeit (mit erweitertem Umfang) bearbeitet werden. Die genauen Aufgabenstellungen werden je nach Vorkenntnissen und Interessenlage besprochen.