PARABOLAS and the GRAPHIC CALCULATOR (PARABOLEN en de GRAFISCHE REKENMACHINE )
PictureRubber Stefan Benischke, Eric Jahn, Erik Müller 26.01.2011 Spezielle Kapitel Grafische...
-
Upload
gerlach-kaste -
Category
Documents
-
view
103 -
download
0
Transcript of PictureRubber Stefan Benischke, Eric Jahn, Erik Müller 26.01.2011 Spezielle Kapitel Grafische...
PictureRubber
Stefan Benischke, Eric Jahn, Erik Müller26.01.2011
Spezielle Kapitel Grafische DatenverarbeitungErfurt University of Applied Sciences
Wintersemester 2010/2011
Stefan Benischke, Eric Jahn, Erik Müller - PictureRubber 2 / 17
Gliederung
1. Demonstration
2. Aufgabenverteilung
3. Spielprinzip / Einsatz
4. Technische Herausforderungen
1. Kinect
2. Performance der Bildermanipulation
3. Dynamische Integration von Bildern / Videos
Stefan Benischke, Eric Jahn, Erik Müller - PictureRubber 3 / 17
1. Demonstration
Stefan Benischke, Eric Jahn, Erik Müller - PictureRubber 4 / 17
2. Aufgabenverteilung• Stefan Benischke
Kinect-Integration CLNUI-Framework
Dynamischen Content-Import
Menü / Programmlogik
• Eric Jahn
Shaderimplementation und –integration
Gestenhandling
• Erik Müller
Kinect-Integration OpenNI & NITE
Gestenerkennung
Texturing
Stefan Benischke, Eric Jahn, Erik Müller - PictureRubber 5 / 17
3. Spielprinzip / Einsatz• Spielprinzip:
durch Interaktionen mit der Hand könnenBilder/Bildbereiche wegradiert werden
• Einsatz:
interaktive Touren durch Gebäude
Entwicklung eines Objektesdarstellen
Bilderspiele
Stefan Benischke, Eric Jahn, Erik Müller - PictureRubber 6 / 17
4.1. Technische Herausforderungen I
• Problem: versch. SDK-, API- und Treiberversionen für Kinect
Code Laboratories: CL NUI Plattform
o gute Treiberunterstützung (Motor, Tiefenbild, Ton)
o schlechte Unterstützung durch das Framework
OpenNI
o Plattform und SDK zur Ansteuerung verschiedener Sensoren
o C# Wrapper OpenNI.net
NITE
o PrimeSense Dienstschicht für OpenNI
o C# Wrapper ManagedNite (kompiliert für XNA 3.1)
Stefan Benischke, Eric Jahn, Erik Müller - PictureRubber 7 / 17
4.1. Technische Herausforderungen II
Stefan Benischke, Eric Jahn, Erik Müller - PictureRubber 8 / 17
4.1. Technische Herausforderungen III
• Lösung:
Trial & Error verschiedener Treiberversionen und SDKs
Zusammenspiel aus:
o OpenNI (unstable)
o Modified Kinect Sensor Plugin 5.0.0.0.
o PrimeSense NITE Stable
Zugriff auf Sensordaten sowie Funktionen desNITE-Frameworks (z.B. Hand- und Gestenerkennung)
Glätten der Handbewegung durch Mittelwertberechnung
Weitere Stabilisierung durch Anpassung der PointDenoiser-Distanzen
Stefan Benischke, Eric Jahn, Erik Müller - PictureRubber 9 / 17
4.2. Technische Herausforderungen I
• Performance der Bildermanipulation:
Anspruch möglichst Echtzeit
Möglichkeiten:
o Get/Set-Pixel
o Byte-Operationen
o Shader
Stefan Benischke, Eric Jahn, Erik Müller - PictureRubber 10 / 17
4.2. Technische Herausforderungen II
• Get/Set-Pixel
Array-Operation zu langsam
• Byte-Operationen
schneller als Get/Set-Pixel
allerdings für jedes Bild ein Byte-Array
viele for-Schleifen und Vergleiche
• Shader
sehr schnell
wenig Code
Verfahren: Render To Texture
Stefan Benischke, Eric Jahn, Erik Müller - PictureRubber 11 / 17
4.2. Technische Herausforderungen III
Entscheidung für Umsetzung mittels Shader
sehr performant und Echtzeit
• Shader 1:
erfassen der Mouseposition bei jedem Update
daraus wird Texturvorlage generiert
• Shader 2:
löschen der Texturbereiche anhand der Vorlage
Stefan Benischke, Eric Jahn, Erik Müller - PictureRubber 12 / 17
4.2. Technische Herausforderungen IV
• Probleme bei Shader-Umsetzung:
Umrechnung der Mauskoordinaten aufFensterkoordinaten
Löschen der RenderTargets nach Änderungen am Fenster Anlegen einer Kopie mithilfe von GetData()und SetData()
Zustandsänderungen im Shader nicht feststellbar jede Textur muss überprüft werden,ob der betroffene Bereich gelöscht werden kann
Stefan Benischke, Eric Jahn, Erik Müller - PictureRubber 13 / 17
4.3. Technische Herausforderungen I
• Dynamische Integration der Bilddaten
Normalerweise:
• Integration sämtlicher verwendeter Bilder über Content Importer bzw. ContentProject
Ansatz:
• Bilder dynamisch zur Laufzeit aus Ordner einlesen
Lösung:
• Texture2D.FromStream()
Stefan Benischke, Eric Jahn, Erik Müller - PictureRubber 14 / 17
4.3. Technische Herausforderungen II
• Dynamische Integration der Videodaten
Normalerweise:
• Integration sämtlicher verwendeter Videos über Content Importer bzw. ContentProject
Ansatz:
• Ähnlich wie bei der Bildintegration
Lösung:
• ausstehend
• statische Integration umgesetzt
Probleme:
• aus Performancegründen nicht integriert
Stefan Benischke, Eric Jahn, Erik Müller - PictureRubber 15 / 17
Ausblick• Mehrbenutzerunterstützung
• Radieren auf Videos
• Kinect-Ansteuerung verbessern
Motoransteuerung
Mikrofonunterstützung
Stefan Benischke, Eric Jahn, Erik Müller - PictureRubber 16 / 17
Fragen
Stefan Benischke, Eric Jahn, Erik Müller - PictureRubber 17 / 17
Vielen Dank für
Ihre Aufmerksamkeit