PictureRubber Stefan Benischke, Eric Jahn, Erik Müller 26.01.2011 Spezielle Kapitel Grafische...

17
PictureRubber Stefan Benischke, Eric Jahn, Erik Müller 26.01.2011 Spezielle Kapitel Grafische Datenverarbeitung Erfurt University of Applied Sciences Wintersemester 2010/2011

Transcript of PictureRubber Stefan Benischke, Eric Jahn, Erik Müller 26.01.2011 Spezielle Kapitel Grafische...

Page 1: PictureRubber Stefan Benischke, Eric Jahn, Erik Müller 26.01.2011 Spezielle Kapitel Grafische Datenverarbeitung Erfurt University of Applied Sciences Wintersemester.

PictureRubber

Stefan Benischke, Eric Jahn, Erik Müller26.01.2011

Spezielle Kapitel Grafische DatenverarbeitungErfurt University of Applied Sciences

Wintersemester 2010/2011

Page 2: PictureRubber Stefan Benischke, Eric Jahn, Erik Müller 26.01.2011 Spezielle Kapitel Grafische Datenverarbeitung Erfurt University of Applied Sciences Wintersemester.

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

Page 3: PictureRubber Stefan Benischke, Eric Jahn, Erik Müller 26.01.2011 Spezielle Kapitel Grafische Datenverarbeitung Erfurt University of Applied Sciences Wintersemester.

Stefan Benischke, Eric Jahn, Erik Müller - PictureRubber 3 / 17

1. Demonstration

Page 4: PictureRubber Stefan Benischke, Eric Jahn, Erik Müller 26.01.2011 Spezielle Kapitel Grafische Datenverarbeitung Erfurt University of Applied Sciences Wintersemester.

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

Page 5: PictureRubber Stefan Benischke, Eric Jahn, Erik Müller 26.01.2011 Spezielle Kapitel Grafische Datenverarbeitung Erfurt University of Applied Sciences Wintersemester.

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

Page 6: PictureRubber Stefan Benischke, Eric Jahn, Erik Müller 26.01.2011 Spezielle Kapitel Grafische Datenverarbeitung Erfurt University of Applied Sciences Wintersemester.

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)

Page 7: PictureRubber Stefan Benischke, Eric Jahn, Erik Müller 26.01.2011 Spezielle Kapitel Grafische Datenverarbeitung Erfurt University of Applied Sciences Wintersemester.

Stefan Benischke, Eric Jahn, Erik Müller - PictureRubber 7 / 17

4.1. Technische Herausforderungen II

Page 8: PictureRubber Stefan Benischke, Eric Jahn, Erik Müller 26.01.2011 Spezielle Kapitel Grafische Datenverarbeitung Erfurt University of Applied Sciences Wintersemester.

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

Page 9: PictureRubber Stefan Benischke, Eric Jahn, Erik Müller 26.01.2011 Spezielle Kapitel Grafische Datenverarbeitung Erfurt University of Applied Sciences Wintersemester.

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

Page 10: PictureRubber Stefan Benischke, Eric Jahn, Erik Müller 26.01.2011 Spezielle Kapitel Grafische Datenverarbeitung Erfurt University of Applied Sciences Wintersemester.

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

Page 11: PictureRubber Stefan Benischke, Eric Jahn, Erik Müller 26.01.2011 Spezielle Kapitel Grafische Datenverarbeitung Erfurt University of Applied Sciences Wintersemester.

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

Page 12: PictureRubber Stefan Benischke, Eric Jahn, Erik Müller 26.01.2011 Spezielle Kapitel Grafische Datenverarbeitung Erfurt University of Applied Sciences Wintersemester.

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

Page 13: PictureRubber Stefan Benischke, Eric Jahn, Erik Müller 26.01.2011 Spezielle Kapitel Grafische Datenverarbeitung Erfurt University of Applied Sciences Wintersemester.

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()

Page 14: PictureRubber Stefan Benischke, Eric Jahn, Erik Müller 26.01.2011 Spezielle Kapitel Grafische Datenverarbeitung Erfurt University of Applied Sciences Wintersemester.

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

Page 15: PictureRubber Stefan Benischke, Eric Jahn, Erik Müller 26.01.2011 Spezielle Kapitel Grafische Datenverarbeitung Erfurt University of Applied Sciences Wintersemester.

Stefan Benischke, Eric Jahn, Erik Müller - PictureRubber 15 / 17

Ausblick• Mehrbenutzerunterstützung

• Radieren auf Videos

• Kinect-Ansteuerung verbessern

Motoransteuerung

Mikrofonunterstützung

Page 16: PictureRubber Stefan Benischke, Eric Jahn, Erik Müller 26.01.2011 Spezielle Kapitel Grafische Datenverarbeitung Erfurt University of Applied Sciences Wintersemester.

Stefan Benischke, Eric Jahn, Erik Müller - PictureRubber 16 / 17

Fragen

Page 17: PictureRubber Stefan Benischke, Eric Jahn, Erik Müller 26.01.2011 Spezielle Kapitel Grafische Datenverarbeitung Erfurt University of Applied Sciences Wintersemester.

Stefan Benischke, Eric Jahn, Erik Müller - PictureRubber 17 / 17

Vielen Dank für

Ihre Aufmerksamkeit