Hoe krijg je een 3D applicatie in de CAVE?

From Fontys VR-Wiki
Jump to: navigation, search

De virtual reality CAVE is een erg interessant medium voor het weergeven van 3D applicaties. In het ideale geval zou je iedere 3D applicatie in de CAVE willen laten draaien. Helaas is dit in de praktijk niet zo eenvoudig.

Erg weinig applicaties bieden standaard ondersteuning voor een VR CAVE, daarnaast is er ook slechts een beperkt aantal applicaties dat geschikt gemaakt kan worden.

In dit artikel zullen aan de hand van een aantal vragen de mogelijkheden om verschillende soorten applicaties geschikt te maken voor gebruik in de CAVE besproken worden.

Is de broncode van de applicatie beschikbaar?

Op internet zijn voor visualisatiedoeleinden een redelijk aantal open source applicaties beschikbaar. Als de broncode beschikbaar is, kan de applicatie naar wens worden aangepast en is het wellicht mogelijk om deze geschikt te maken voor de CAVE.

Is de applicatie geschreven in C++ & OpenGL?

Dit is het geval voor een hoop open source 3D-applicaties. Er is in dit geval een redelijk goede kans dat de applicatie aangepast kan worden om in de CAVE te werken. De moeite die dit kost hangt echter wel af van de complexiteit van de applicatie.

Met behulp van een pakket als VR Juggler, kan een dergelijke applicatie worden omgeschreven naar een virtual reality applicatie, die op verschillende VR systemen (waaronder een CAVE) kan worden gebruikt. Hiervoor moet de applicatieklasse overerven van een VR Juggler applicatieklasse en moeten verschillende callback functies worden geïmplementeerd.


Voor het gebruiken van VR Juggler zijn een aantal workshops (met uitwerkingen) beschikbaar: link

Ook is er een handleiding beschikbaar: link

Let op: deze links wijzen naar de website van FHICT, waarvoor je moet inloggen.

Is de applicatie geschreven in Java3D?

Voor Java3D bestaan mogelijkheden om applicaties op meerdere schermen te draaien, waarbij de oriëntatie van de schermen ingesteld kan worden. Ook is er ondersteuning voor motiontracking en stereoscopie. Ondersteuning voor synchronisatie over een netwerkcluster lijkt echter te onbreken.

Veel informatie over Java3D en virtual reality is er niet te vinden op internet. De universiteit van Calgary heeft een CAVE die gebruik maakt van Java3D. website

Andere programmeertaal / graphics API

Het is wellicht mogelijk om de applicatie om te schrijven voor gebruik in een CAVE. Dit is echter wel veel werk. De applicatie zal op een cluster van 4 of 5 PC's moeten draaien, waarbij synchronisatie over het netwerk nodig is; op iedere PC zullen de beelden gelijktijdig weergegeven moeten worden. Ook zal op iedere PC de wereld vanuit een ander perspectief, stereoscopisch getoond moeten worden. Daarnaast moet er rekening gehouden worden met de positie van het hoofd van de gebruiker i.v.m. het weergeven van het correcte perspectief. Ook interactie met een 3D muis moet mogelijk zijn.

Al met al zijn er behoorlijk veel stappen noodzakelijk om een applicatie geschikt te maken voor de CAVE.

Is de broncode van de applicatie niet beschikbaar?

In dit geval wordt het al een heel stuk lastiger. Als de applicatie geen ondersteuning voor clustering, stereoscopie of headtracking biedt, zijn de mogelijkheden helaas zeer beperkt.

Is het een OpenGL applicatie?

In dit geval is er misschien nog het een en ander mogelijk met Chromium website

Chromium is een open source applicatie voor het gedistribueerd (met meerdere PC’s, op meerdere schermen) renderen van OpenGL applicaties. Chromium is in staat om bestaande OpenGL applicaties, zonder aanpassingen, op deze manier te renderen. Chromium doet dit door de OpenGL library’s op een systeem te vervangen. Op deze manier kan Chromium de aanroep van OpenGL functies onderscheppen. Chromium zorgt vervolgens voor de correcte afhandeling van deze functie-aanroepen. Het is in staat om een computer cluster te gebruiken, waarbij elke computer zijn eigen scherm aanstuurt, of waarbij meerdere computers worden gebruikt voor het renderen van een enkele viewport. Daarnaast ondersteunt Chromium ook stereoscopische applicaties en kan een niet stereoscopische applicatie toch stereoscopisch worden weergegeven. Dit laatste is volgens de website echter nog niet helemaal betrouwbaar.


Chromium is in thereorie dus in staat om onaangepaste applicaties, eventueel stereoscopisch, in een CAVE omgeving te draaien. Een grote beperking is echter dat Chromium niet overweg kan met VR invoerapparaten. Hoewel dit te verhelpen zou zijn door gebruik van trackd of VRPN, blijft het volgens de website van Chromium noodzakelijk om een applicatie aan te passen om deze invoer daadwerkelijk te kunnen gebruiken. In het geval van een CAVE is het namelijk zo dat het perspectief dat wordt weergegeven, afhangt van de positie van het hoofd van de gebruiker. Een applicatie zal daarom zelf het juiste perspectief moeten berekenen op basis van deze gegevens. Samenvattend gesteld biedt Chromium een eenvoudige manier om een veelvoud aan applicaties in een CAVE omgeving te draaien, maar kan het niet zomaar gebruik maken van alle mogelijkheden van zo’n omgeving.