Framework

From Fontys VR-Wiki
Jump to: navigation, search

Momenteel is dit raamwerk alleen geschikt voor ontwikkeling binnen de cave. Dit komt omdat er geen input-simuator is.

Indien je een C++ cave applicatie wilt maken, kun je dit in VR-Juggler doen. Een alternatief is om dit custom Fontys-Cave raamwerk te gebruiken.

Dit raamwerk is in essentie een native Windows OpenGL raamwerk (gebaseerd op [1]) dat is aangepast zodat de applicatie in de cave draait. Het raamwerk maakt gebruik van de daemonSDK (zie Fontys VR-Cave Daemon SDK). Voor een doxygen handleiding van dit raamwerk zie [2].

Het raamwerk is een stand-alone Visual Studio 2008 project. Het is te vinden op de locatie: D:\Cave software\wouter\fontysvr\framework 18-10-2010.zip.

Achtergrond

De rede waarom dit raamwerk gemaakt is, is omdat het configureren van VR-Juggler soms wel eens lastig kan zijn. In VR-Juggler houdt de programmeur zich bezig met de applicatie die gebaseerd is op een configuratie bestand, waarvan de betekenis vaak onduidelijk is. In de praktijk leidt dit vaak tot veel trial and error tests.

Ondanks dat je een applicatie specifiek voor de cave ontwikkeld, wordt er bij VR-Juggler toch de nadruk gelegd op het generieke aspect. Zo zou je door een andere configuratie file te gebruiken, de applicatie kunnen gebruiken voor een desktop, of voor een andere VR-insallatie. In de praktijk is het configuratie-systeem een last. Het voegt een extra laag complexiteit toe aan het systeem (Iets waar je als programmeur niet op zit te wachten.)

Dit raamwerk is gewoonweg een stand-alone project. Alle gedragingen van het programma worden geregeld in de code.

Gebruik

Het raamwerk heeft een bestand application.cpp. Hierin bevinden zich een update en een render functie.

De functie update wordt aangeroepen voor render. De scene dient ververst te worden in update. In render wordt renderEye aangeroepen. (Meer informatie hierover is te vinden op Fontys VR-Cave Daemon SDK.)

In een cave setting draait op iedere machine dezelfde applicatie. De projecties worden automatisch aangepast aan de machine. In principe heb je door het her-implementeren van de renderEye functie al een applicatie.

Eerste keer draaien in de Cave

  • Maak een directory aan (je naam) in de directory D:\Cave software\ (mocht deze nog niet bestaan). Plaats de gehele project tree in die directory.
  • In de directory framework staat een file config.txt. Maak de paden kloppend (alleen de regels zonder # zijn van belang). (Voor meer informatie zie: Syncmon.) Zet alle machines aan (en wacht tot ze opgestart zijn) en start syncmon (de applicatie wordt gesynchroniseerd).
  • Maak de CaveServer tool actief. Klik op de Add knop. Geef het project een naam: Jouwnaam - Jouwproject. Geef het pad op van de executable op de server. Klik ok.
  • Zet de FOB aan, start de Fontys VR-Cave daemon (zet de beamers aan indien dit nog niet gebeurd is).
  • Start de applicatie in CaveServer

Voeg Wiimotes toe indien nodig.

Minimalisme

Het raamwerk is doelbewust minimaal gehouden. (Er valt natuurlijk te twisten over wat je "minimaal" noemt.) Een programma dat op dit raamwerk gebaseerd is (met wat meer complexiteit) is "Ball Interaction".

D:\Cave software\wouter\fontysvr\ball_interaction

Dit programma linkt aan enkele libraries die het makkelijk maken om textures te laden. Dit soort dingen zitten niet in framework, omdat dergelijke dependencies vaak ongewenst zijn.

Voordelen

  • De applicatie opstart-tijd is ogenblikkelijk (om precies te zijn de werkelijke opstarttijd van de applicatie).
  • Alle standaard features zijn beschikbaar (head, wand, tijd, synchronisatie, wiimote + nunchuck)
  • Volledige controle over transformaties
  • Stand-alone project

Nadelen

  • Momenteel is er geen input simulator