head-coupled perspective · kp uie: head-coupled perspective ws 2013/2014, tu dresden florian...
TRANSCRIPT
KP UIE: Head-Coupled Perspective
WS 2013/2014, TU Dresden
Florian Weidner, Sergej Lopatkin Folie 1 von 21
Head-Coupled
Perspective
Florian Weidner, Sergej Lopatkin
Betreuer: Ricardo Langner, Wolfgang Büschel
TU Dresden, Lehrstuhl MT, WS2013/2014
KP UIE: Head-Coupled Perspective
WS 2013/2014, TU Dresden
Florian Weidner, Sergej Lopatkin Folie 2 von 21
Gliederung
1. Einführung
2. Zielsetzung
3. Zeitplan
4. Vorgehen
5. Herausforderungen
6. Software
7. Zusammenfassung
8. Fazit
KP UIE: Head-Coupled Perspective
WS 2013/2014, TU Dresden
Florian Weidner, Sergej Lopatkin Folie 3 von 21
1. Einführung
Virtuelles Modell kann durch
mobiles Gerät betrachtet werden
⇒ Perspektive verändert sich! [A]
KP UIE: Head-Coupled Perspective
WS 2013/2014, TU Dresden
Florian Weidner, Sergej Lopatkin Folie 4 von 21
1. Einführung
[B]
KP UIE: Head-Coupled Perspective
WS 2013/2014, TU Dresden
Florian Weidner, Sergej Lopatkin Folie 5 von 21
1. Einführung
zu Gerätenzu Motive
Middleware
Motive
KP UIE: Head-Coupled Perspective
WS 2013/2014, TU Dresden
Florian Weidner, Sergej Lopatkin Folie 6 von 21
2. Zielsetzung
⇒ Middleware
• Empfang von Motive
• Verarbeitung
• Senden an Geräte
• Modular/Wiederverwendbar
• Plattformunabhängig
KP UIE: Head-Coupled Perspective
WS 2013/2014, TU Dresden
Florian Weidner, Sergej Lopatkin Folie 7 von 21
⏯ Bis 19.11.2013: Einarbeitung⇒ libgdx, Motive/Streaming, HCP Algorithmus
⏯ Bis 17.12.2013: Prototypen entwickeln⇒ Dummy-Daten, Einfache Szene
⏯ Bis 23.12.2013: Prototypen zusammenfügen⇒ Daten werden gestreamt und empfangen
⏯ Bis 21.01.2014: HCP Implementieren⇒ Datenformat & Verarbeitung, HCP
⏯ Bis 28.01.2014: Multi-Device Support⇒ Grundgerüst mit Multi-Device Support in der Middleware
⏯ Bis 06.02.2014: Doku & Präsentation
3. Zeitplan
KP UIE: Head-Coupled Perspective
WS 2013/2014, TU Dresden
Florian Weidner, Sergej Lopatkin Folie 8 von 21
4. Vorgehen
• Parallele Arbeiten:
1. Florian: Middleware
2. Sergej: libgdx-Anwendung (3D-Szene)
• Gemeinsame Arbeiten:
1. Dokumentation/Präsentation
2. Einarbeitung (Kooima[1], Francone[2])
3. HCP-Algorithmus (am Ende)
KP UIE: Head-Coupled Perspective
WS 2013/2014, TU Dresden
Florian Weidner, Sergej Lopatkin Folie 9 von 21
5. Herausforderungen
• Middleware• Multithreading in der Middleware
• Plattformunabhängige Kommunikation
• Senden, Empfangen, HCP Berechnung
• Geeignetes Protokoll
• libgdx• Szenenerstellung
• Genauigkeit von float
• HCP Anwendung!
KP UIE: Head-Coupled Perspective
WS 2013/2014, TU Dresden
Florian Weidner, Sergej Lopatkin Folie 10 von 21
6. Software: Komplette Anwendung
libgdxMiddleware
Komplettanwendung
KP UIE: Head-Coupled Perspective
WS 2013/2014, TU Dresden
Florian Weidner, Sergej Lopatkin Folie 11 von 21
6. Software: Middleware
KP UIE: Head-Coupled Perspective
WS 2013/2014, TU Dresden
Florian Weidner, Sergej Lopatkin Folie 12 von 21
6. Software: Middleware
Threading
Main
T1: NatNetClient (empfängt von Daten von Motive)
T2: HCP_Calculator (berechnet Daten)
T3: SocketSender (sendet Daten an Devices)
KP UIE: Head-Coupled Perspective
WS 2013/2014, TU Dresden
Florian Weidner, Sergej Lopatkin Folie 13 von 21
6. Software: Middleware
● Details:● ca. 320Byte/Frame mit max 120 Frames/s ⇒ ca. 4kB/s
● TCP/IP, Socket
● Erstelltes XML-Format: <Response>
<iFrameNumber></iFrameNumber>
<head>
<headID></headID>
<pivot></pivot>
<orientation></orientation>
</head>
<projMatrix></projMatrix>
<device>
<deviceID></deviceID>
<pivot></pivot>
<orientation></orientation>
</device>
</Response>
KP UIE: Head-Coupled Perspective
WS 2013/2014, TU Dresden
Florian Weidner, Sergej Lopatkin Folie 14 von 21
6. Software: Mobile Geräte/libgdx
• Komponenten:
• Szenen
• Netwerk
• HCP Utils
• Trennung der
Verantwortlichkeiten
⇒ HCP austauschbar
⇒ Szene austauschbar
KP UIE: Head-Coupled Perspective
WS 2013/2014, TU Dresden
Florian Weidner, Sergej Lopatkin Folie 15 von 21
6. Software: Mobile Geräte/libgdx
• Szenen• Einfacher Würfel
• Szene mit komplexen 3D-Modell (.obj, .mtl, etc.)
• Performancetest
• HCP
KP UIE: Head-Coupled Perspective
WS 2013/2014, TU Dresden
Florian Weidner, Sergej Lopatkin Folie 16 von 21
6. Software: Algorithmus
Lösung:1. Modell platzieren ⇒ globale Koordinaten
2. Off-Axis-Perspektive berechnen
2.1 Frustum Drehung
2.2 Frustum auf Kopfposition anpassen
3. Rotation der Szene um Deviceorientierung
4. Rotation der Szene um Kopforientierung
KP UIE: Head-Coupled Perspective
WS 2013/2014, TU Dresden
Florian Weidner, Sergej Lopatkin Folie 17 von 21
7. Zusammenfassung
• Funktionierende Middleware• Wiederverwendbar/Modular
• TCP/IP, Sockets
• Config-Datei
• Grundgerüst der libGdx HCP Anwendung• Einfache HCP
• Rotationen werden behandelt
• Parallelverschiebungen
• Was fehlt:• Total Positionsinvarianz
• Performanceverbesserungen
KP UIE: Head-Coupled Perspective
WS 2013/2014, TU Dresden
Florian Weidner, Sergej Lopatkin Folie 18 von 21
8. Fazit: libgdx
• Pro:• Deployment auf viele Plattformen möglich
• Architektur des Frameworks übersichtlich
• Con:• Nicht ausgereifte 3D API
• “vertraute” Methoden nicht nativ verfügbar
• glFrustum()
• gluLookAt()
• …
⇒ Unity3D besser geeignet?
KP UIE: Head-Coupled Perspective
WS 2013/2014, TU Dresden
Florian Weidner, Sergej Lopatkin Folie 19 von 21
8. Fazit: allgemein
• Unterschätzte Komplexität des Algorithmus
• Spätes Testen mit Live-Daten
• Zeitplan suboptimal
• libgdx Anwendung mit Grund-HCP
• Deployment auf versch. Plattformen
• Stabile Middleware
KP UIE: Head-Coupled Perspective
WS 2013/2014, TU Dresden
Florian Weidner, Sergej Lopatkin Folie 20 von 21
Fragen?
Vielen Dank für die Aufmerksamkeit!
KP UIE: Head-Coupled Perspective
WS 2013/2014, TU Dresden
Florian Weidner, Sergej Lopatkin Folie 21 von 21
Quellen
[1] Kooima, R., Generalized Perspective Projection, 2008
[2] Francone, J. Using hte User’s Point of View for Interaction on Mobile Devices, IHM '11, 2011
[A] http://1.bp.blogspot.com/-
YtjbFWKAu1Y/UXchpyaSkCI/AAAAAAAAA7I/OJjp89MXYy0/s1600/HCpersp520wide.jpg
[B] http://cdn.slashgear.com/wp-content/uploads/2009/03/lenovo_thinkcentre_a58.jpg