Kurzbeschreibung

Wir haben uns vorgenommen eine Breakout Variante auf einem intelligenten Tisch zu implementieren. Der Spieler soll dabei die Position der Blöcke zu Beginn des Spiels mit Hilfe eines Markers bestimmen können (möglicherweise auch während des Spiels) und das Paddle, an dem der (rein virtuelle) Ball abprallt mit einem weiteren (Multi-)Marker steuern können. Weiterhin soll durch die Drehung des Markers auch das virtuelle Paddle gedreht und der Ball physikalisch korrekt abgelenkt werden.

Implementierung

Die wichtigsten Teilaspekte dieses Vorhabens sind:
  • Kalibrierung des Tisches (also der Position des Beamers zur Kamera)
  • Möglichst genaue, möglichst schnelle Erkennung der Marker
  • Portabilität
  • Minimales Setup (ein Beamer, eine Kamera, ein Tisch)
  • graphisch ansprechende Umsetzung
  • Überzeugende Spielphysik
  • Fest positionierte Steine, ein Paddle, ein Ball
  • Paddlesteuerung durch (Multi-)Marker

Abhängigkeiten

Da die Marker über unser Programm am Bildschirm angezeigt werden sollen und gleichzeitig auch das ARToolkit laufen muss, brauchen wir eine Möglichkeit, ein Bild zu laden und über OpenGL als Textur anzuzeigen. Da dies nicht so trivial zu sein scheint wie es sich anhört, haben wir uns dabei letztlich auf die OpenSource-Library "DevIL" (http://openil.sourceforge.net/) gestützt. Die momentane Implementierung läuft sowohl unter Linux als auch unter Windows (VisialStudio).

Optionale Anforderungen

  • Implementierung von Breakout-Spielkonzepten (Bonussteine etc.)
  • Multiplayer mit mehreren Paddle-Markern
  • Variable Bandenverteilung
  • Interaktives Setzen von Steinen durch Marker ("Stift")
  • Kalibrierung mit projezierten Markern
  • Verschiedene Level

Kalibrierung

Prinzip: Bevor das Spiel losgeht, wird ein großer Multimarker auf den Tisch / die Wand projeziert. Die Kamera kann beliebig positioniert werden, muss dann aber während dem Spiel, wie auch die das projezierte Bild, an der gleichen Stelle bleiben. ARToolkit erkennt in der Kalibrierungsphase durch den projezierten Multimarker die Lage des Tischs zur Kamera. Während dem Spiel muss dann nur noch der Schläger/Paddle erkannt werden. Man hat dann die Größe und die Matrix von der Kamera zum kompletten Tisch und zum Paddle. Die Position des Paddles im Spiel ist dann die zweidimensionale Projektion der Paddle-Matrix auf die Tisch-Matrix (Z-Offset=0, Rotation nur um Z-Achse möglich).

Notizen:
  • Test mit projezierten Markern war erfolgreich (Testumgebung: Beamer im 5. Stock). Der Thresold muss allerdings auf ca. 200 gesetzt werden.
  • Problem: Bei verändertem Threshold werden normale Marker nicht mehr erkannt. Da aber keine projezierten Marker gleichzeitig mit normalen Marken zum Einsatz kommen, kann der Threshold nach der Kalibrierung wieder herabgesetzt werden (Standard: 100).
  • Rahmenbedingung für Kalibrierung: Rechteckige Projektion ohne Verzerrungen (Projektor entsprechend einrichten)
  • Projektion von vier Eckmarkern als Multimarker zur Erkennung der Spielfläche
  • Werden alle vier Marker erkannt, ist die Spielebene bekannt
  • Virtuelle Kamera (entspricht Beamer) gegenüber vom Spielfeld so positionieren, dass gesamte Bildfläche vom Spielfeld ausgefüllt wird.

Für den Fall, dass mit der normalen automatischen Kalibrierung bei der Aufführung etwas nicht klappen sollte, wird noch eine alternative "Panik-Kalibrierung" erstellt. Der Paddle wird erst an das linke, dann an das rechte Ende des Bildschirms gehalten und nur die Positionen dazwischen und die relative Z-Rotation erkannt. Da dazu die Tastatur erforderlich ist, ist diese Methode nicht gerade sehr elegant, aber eben auch um einiges robuster.

Systemdesign

  • Kalibrierung als Extra-Modul
  • Main-Datei, mathematische Funktionen und Szenegraphfunktionen extra
  • 3D-Objekte mit VRML

Szenengraph


ToDo

  • 3D-Objekte erstellen (DS)
  • Multimarker erstellen (DB)
  • Klassenstruktur (TH)

  • 3D-Visualisierung:
    3D-Visualisierung

Screenshots

ToDo

  • Dominikus: Marker, Kollision
  • Dominik: VRML, Textanzeigen (Texturen)
  • Tobias: Spiellogik (mehrere Leben, Continue), alte Kalib raus
Topic attachments
I Attachment Action Size Date Who Comment
3D-Modell.pngpng 3D-Modell.png manage 119.7 K 22 Jun 2005 - 10:32 DominikSchmidt 3D-Visualisierung
Screenshot1.jpgjpg Screenshot1.jpg manage 17.4 K 05 Jul 2005 - 15:55 TobiasHoessl  
Screenshot2.jpgjpg Screenshot2.jpg manage 17.7 K 05 Jul 2005 - 15:55 TobiasHoessl  
breakout2.jpgjpg breakout2.jpg manage 30.2 K 12 Jul 2005 - 11:53 TobiasHoessl  
szenegraph.gifgif szenegraph.gif manage 10.8 K 21 Jun 2005 - 13:35 TobiasHoessl Szenegraph
Topic revision: r10 - 12 Jul 2005, TobiasHoessl
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Medieninformatik-Wiki? Send feedback