Grafik-APIs für den Einsatz in der Augentherapie Verteidigung der Diplomarbeit von Sascha Seewald
Überblick 1. Einleitung 2. Vergleich freier Grafik-APIs 3. Entwicklung eines therapeutischen Malspiels 4. Ausblick Dauer ca. 30 Minuten
Vorstellung des Forschungsprojekts (1) Amblyopie Schwachsichtigkeit kann im frühen Kindesalter noch therapiert werden (3 8 Jahre) bisheriger Ansatz: Okklusion des gesunden Auges zur Anregung des schwachen Auges neuer Ansatz: aktive Stimulation des Sehsystems durch sinusoidale Gitter-Muster (Cambell, Kämpf, Muchamedjarow)
Vorstellung des Forschungsprojekts (2) Zwei Beispiele:
Vorstellung des Forschungsprojekts (3) Idee: Kombination der Stimulation mit einem Computerspiel zur Aufmerksamkeitsbindung
Vorstellung des Forschungsprojekts (4) vor einigen Jahren wurden bereits mehrere Spiele mit Stimulation entwickelt leider mittlerweile hoffnungslos veraltet Sebastian Schmeck entwickelte die AmbViz-Bibliothek zur Darstellung der stimulierenden Muster mit OpenGL Ziel: Entwicklung eines großen Pools an therapeutischen Spielen
Thema der Diplomarbeit (1) Erster Teil: Schaffung der software-technischen Grundlagen für zukünftige Entwicklungen Verwendung von Freier Software Recherche + Vergleich Freier Grafik-APIs
Thema der Diplomarbeit (2) Zweiter Teil: Entwicklung eines therapeutischen Malspiels
Erster Teil Auswahl eines geeigneten 3D-Grafik-Frameworks
Vorgehensweise bei der Untersuchung 1. Zusammentragen der Anforderungen 2. Ableiten von Bewertungskriterien 3. Recherche Freier Grafik-Bibliotheken 4. Detaillierter Vergleich von 3 Kandidaten 5. Bestimmen eines Besten
Bewertungskriterien 1. Erlernbarkeit 2. Erweiterbarkeit/Zukunftssicherheit 3. Lizensierung 4. Features 5. Performance (OSG-Demo)
Recherche 10 Freie APIs wurden in einer Vorauswahl untersucht 3 Kandidaten im Detail verglichen: CrystalSpace (crystal.sourceforge.net) OGRE (www.ogre3d.org ) OpenSceneGraph (www.openscenegraph.org)
Ergebnis der Gegenüberstellung CrystalSpace OGRE OpenSceneGraph Erlernbarkeit - ++ ++ Flexibilität - + ++ Funktionsumfang ++ + ++ Performance - ++ ++
Warum OpenSceneGraph? setzt auf die OpenGL auf bietet multi-funktionalen Szenegraph (keine Game-Engine!) modernes, hoch flexibles Design sauberes, intuitives Interface hervorragende Lehrmaterialien (60+ Beispielprogramme, 20+ Tutorials, API-Referenz, Design-Dokumente, Manual, HowTo, Wiki-FAQ, Mailinglist ) professionelle Features (MultiThreading, Clustering, Massive-LOD, Sound, Physics, ) Stereo-Rendering (horizontal/vertikal, rot-grün, quad buffered) Fazit: OSG bietet die besten Voraussetzungen für zukünftige Grafik- Entwicklungen in der Augentherapie
Zweiter Teil Entwicklungen eines therapeutischen Malspiels
Präsentation
Malen auf 3D-Objekten Drei Möglichkeiten ein Mesh differenziert einzufärben: 1. Shader 2. Texturing 3. VertexColoring
VertexPainting (1) VertexPainting == Manipulation der Vertex-Farben Vertex wird eingefärbt, wenn: 1. Vertex innerhalb des Auswahlbereichs liegt 2. Vertex auch tatsächlich sichtbar ist (nicht verdeckt)
VertexPainting (2) Test auf Auswahlbereich durch Abstandberechnung im Bildraum Sichtbarkeitsbestimmung durch Tiefenvergleich mit Z-Buffer
VertexPainting (3) 1. Projektion des Vertex in den Bildraum 2. Prüfen auf Lage innerhalb des Auswahlbereichs 3. Zeichnen des Mesh-Objekts in den Z-Buffer 4. Vergleich von Abstand der Vertices zur Projektionsebene mit ihrem entsprechenden Eintrag im Z-Buffer
Eigene 3D-Modelle konstruieren Spezielles Modellierungswerkzeug Verfahren von Takeo Igarashi, Uni Tokyo Konstruktion von 3D-Volumen aus skizzierter Silhouette
Modellierung von 3D-Objekten (1) Silhouette erzeugen Delaunay-Triangulation Dreiecke unterteilen
Modellierung von 3D-Objekten (2) Innere Punkte vertikal verschieben
Modellierung von 3D-Objekten (3) Rekursive Unterteilung der entstandenen Schrägen Spiegeln der Objekthälfte geschlossenes Volumen
Zusammenfassung Es wurde: eine solide Basis für zukünftige Grafik- Entwicklungen gefunden ein voll einsatzfähiges Therapieprogramm entwickelt
Wie geht s weiter? Integration weiterer Features im Spiel (Malen-Nach-Zahlen, Manipulation der erzeugten Modelle) Implementation von Stereo-Rendering auf Stereo-Hardware Entwicklung weiterer Spiele mithilfe von OpenSceneGraph
Danke für Ihre Aufmerksamkeit! Fragen?