head-coupled perspective · kp uie: head-coupled perspective ws 2013/2014, tu dresden florian...

21
Head-Coupled Perspective Florian Weidner, Sergej Lopatkin Betreuer: Ricardo Langner, Wolfgang Büschel TU Dresden, Lehrstuhl MT, WS2013/2014

Upload: others

Post on 29-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Head-Coupled Perspective · 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,

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

Page 2: Head-Coupled Perspective · 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,

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

Page 3: Head-Coupled Perspective · 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,

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]

Page 4: Head-Coupled Perspective · 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,

KP UIE: Head-Coupled Perspective

WS 2013/2014, TU Dresden

Florian Weidner, Sergej Lopatkin Folie 4 von 21

1. Einführung

[B]

Page 5: Head-Coupled Perspective · 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,

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

Page 6: Head-Coupled Perspective · 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,

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

Page 7: Head-Coupled Perspective · 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,

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

Page 8: Head-Coupled Perspective · 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,

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)

Page 9: Head-Coupled Perspective · 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,

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!

Page 10: Head-Coupled Perspective · 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,

KP UIE: Head-Coupled Perspective

WS 2013/2014, TU Dresden

Florian Weidner, Sergej Lopatkin Folie 10 von 21

6. Software: Komplette Anwendung

libgdxMiddleware

Komplettanwendung

Page 11: Head-Coupled Perspective · 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,

KP UIE: Head-Coupled Perspective

WS 2013/2014, TU Dresden

Florian Weidner, Sergej Lopatkin Folie 11 von 21

6. Software: Middleware

Page 12: Head-Coupled Perspective · 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,

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)

Page 13: Head-Coupled Perspective · 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,

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>

Page 14: Head-Coupled Perspective · 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,

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

Page 15: Head-Coupled Perspective · 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,

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

Page 16: Head-Coupled Perspective · 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,

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

Page 17: Head-Coupled Perspective · 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,

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

Page 18: Head-Coupled Perspective · 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,

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?

Page 19: Head-Coupled Perspective · 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,

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

Page 20: Head-Coupled Perspective · 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,

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!

Page 21: Head-Coupled Perspective · 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,

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