Skjermbilde 2020-03-18 kl. 21.33.31
>

VR Best Practices

Bård Magnus Sødal 
12. mars 2020

Hva skal til for å lage en god VR-applikasjon? Hva er en god VR-applikasjon? Det er noen enkle designvalg som kan vise om en VR-applikasjon er laget på en god måte.

VR er en forkortelse for Viritual Reality som betyr kunstig virkelighet. Denne artikkelen vil gi deg tips til hvordan du kan lage en god VR-applikasjon. 

Når man skal lage en applikasjon er det mye å ta stilling til:

  1. Hvordan skal den se ut?
  2. Hva er målet med applikasjonen? 
  3. Hvilken interaksjon skal applikasjonen har?

Det samme gjelder når man skal lage en applikasjon som bruker VR. Men det er noen andre aspekter som er ekstra viktig å ta hensyn til for VR-applikasjoner: 

  1. Er applikasjonen komfortabel å bruke? 
  2. Burde applikasjonen lages i VR eller tjener det seg å bruke et annet medium

La oss sammen gå gjennom hvordan man kan finne ut av disse. 

Test av løsninger | Ovidia Eriksen-Hirschberg (t.v.) og Bård Magnus Sødal

Komfortabel å bruke

Mange opplever å bli kvalme ved bruke av VR. Dette kan skyldes forskjellige faktorer. Den vanligste av disse er «motion sickness» eller bevegelsessyke. Dette er det samme som å være bilsyk. Det kommer av at kroppen opplever konflikt i sanseinntrykkene den opplever. F.eks. hvis man sitter i en bil og leser en bok, så kan man bli kvalm fordi øynene ikke ser noe bevegelse, men kroppen føler bevegelsene av bilen som svinger og akselererer. Det samme kan skje i VR ved at man ser bevegelser man ikke føler. Hvis en VR-applikasjon er ukomfortabel å bruke så er applikasjonen ubrukelig. Her er tre tips for hva man bør gjøre for å sørge for at en VR-applikasjon skal være så komfortabel som mulig å bruke.

Tre tips til en komfortabel VR-applikasjon
Tre tips til en komfortabel VR-applikasjon

 

1. Unngå kvalmende kamerabevegelser 

De mest brukte demoene for VR for noen år tilbake var berg-og-dal-baner. Dette er den verste demoen man kan kjøre for folk. Folk blir bevegelsessyke av denne typen applikasjoner fordi kroppen får forskjellige sanseinntrykk, og den følelsen kan gjøre at enkelte aldri har lyst til å prøve VR igjen. Har du bare prøvd VR som berg-og-dal-bane så har du ikke prøvd god VR. For å unngå å bli kvalm må man aldri flytte på eller rotere spilleren, særlig uten spillerens tillatelse. Det er noen applikasjoner som likevel krever at brukeren forflytter seg rundt i det virtuelle landskapet. Det er derfor lurt å ha en komfortabel mulighet for å forflytte seg rundt i applikasjonen: teleportering.  

Bevegelse av bruker lineært
Bevegelse av bruker lineært

 

2. Teleportering som bevegelsesalternativ 

Teleportering er det bevegelsesalternativet som de fleste brukere tåler uten å bli bevegelsessyk. Teleportering er at brukeren blir flyttet til en plass de vil ved å bare plutselig stå der. Det er lurt å i det minste ha mulighet for å bruke teleportering for å flytte seg rundt. Dette hjelper spillere som lett blir bevegelsessyk. Det er fullt mulig å ha andre former for forflytning i applikasjonene. Det gå å ha en bevegelsesmetode i applikasjonen hvor brukeren selv bruker joysticken til å flytte på seg selv lineært, dvs. at de flytter seg i den retningen som joysticken tilsier. Noen tåler denne typen forflytning siden man selv har kontroll på hvor fort og hvilken retning man beveger seg. Dette minner litt om at man ikke så fort blir bilsyk hvis man kjører selv. Det er ikke alle som tåler denne måten å forflytte seg på uten å bli kvalm. Det er derfor lurt å legge opp til teleportering uansett, slik at flest mulig folk kan bruke applikasjonen. 

Teleportering
Teleportering

 

3. Optimalisering

En av de største faktorene til bevegelsessyke er at applikasjonen ikke er optimalisert og at bildefrekvensen (FPS – Frames Per Second) faller under akseptable nivåer. Jo høyere FPS, jo mer komfortabel er applikasjonen å bruke. Bildefrekvensen faller når PC-en som kjører applikasjonen må gjøre flere oppgaver og kalkuleringer enn det den rekker på den tiden den har. Industristandarden for skjermene i VR-briller er på rundt 90 bilder i sekundet, hvor noen VR-briller har en del høyere og noen lavere FPS enn det. For at applikasjonen skal være så behagelig som mulig å bruke så bør applikasjonen kjøre på maksimal bildefrekvens som er mulig på de spesifikke VR-brillene applikasjonen skal kjøre på. 

Det er 3 hovedkilder til at bildefrekvensen synker:  

  1. sanntidslys  

  2. tunge grafiske kalkuleringer  

  3. Dårlig optimalisert kode 

Sanntidslys 

Sanntidslys eller «Realtime lighting» er en form for belysning i applikasjoner som må kalkuleres hver gang noe skal vises på skjermen. I VR betyr dette at belysningen må kjøres oppimot 90 ganger i sekundet, og i tillegg kjøres to ganger (en gang for hvert øye). Dette kan kreve mye av applikasjonen. I den grad det er mulig så bør man prøve å bruke «Bakt belysning», dvs. at belysningen er regnet ut på forhånd og skyggene ‘’malt’’ på teksturene. Dette fungerer bare på objektene som ikke bytter posisjon mens applikasjonen kjører.  

Tunge grafiske kalkuleringer 

Grafikken i VR-applikasjonen må også regnes ut rundt 90 ganger i sekundet for hvert øye. Når denne kalkuleringen skal kjøres så må alle ting som er i synsfeltet til brukeren kalkuleres og vises for hvert øye.  Det er to hovedting som kan gjøre at denne kalkuleringen blir krevende er hvis 3d modellene som blir brukt er veldig komplekse og hvis teksturene (mønsteret) er stort. Ved å redusere kompleksiteten på disse så vil applikasjonen kjøre bedre, og derfor bli mer behagelig å bruke for brukeren.   

Dårlig optimalisert kode 

Til slutt så må man ta for seg kodebasen. Applikasjonen bør ikke ha kode som kjøres unødvendig, og bør ikke ha tunge kalkuleringer som ikke datamaskinen klarer å kjøre på under 10 ms. Dette er jo greit å prøve å unngå i de fleste applikasjoner, men i VR så vil det påvirke brukeren i større grad enn om det var en desktopapplikasjon.  

 

Kamera i applikasjoner
Kamera i applikasjoner
Kilde: https://gamedev.stackexchange.com/questions/136007/projection-texture-mapping 

Bør applikasjonen være i VR? 

Det er ikke alle applikasjoner som blir bedre av å bruke VR teknologi. I mange tilfeller er det mulig at det hadde vært bedre å ha applikasjonen på mobiltelefon, vanlig PC, eller bruke teknologien til AR (Augmented Reality). 

Styrken til VR er at det simulerer virkeligheten. Dersom det ikke er et viktig aspekt av applikasjonen så er det ikke nødvendig å bruke VR. For at det skal gi mening å bruke VR, bør applikasjonen få til eller gjøre noe som den ikke hadde fått til uten å være i VR. La oss ta for oss to eksempler for visualisering i bygg bransjen: 

  • VR
    Det skal lages en applikasjon som skal brukes til å visualisere hvordan et hus eller deler av huset som bygges skal se ut før byggestart. 
     
  • AR
    Det skal lages en applikasjon som skal vise en tømrer hvor det er strømledninger og vannledninger i et hus som allerede er bygd. Her passer AR bra siden konstruksjonene på huset er satt opp og man skal legge til nye elementer

VR passer bra til simuleringstrening og i scenarioer der man ikke har muligheten til å være der hvor arbeidsoppgaven skal utføres. Dersom applikasjonen skal brukes on-site på vanlige arbeidsdager så passer det nok bedre å bruke AR eller mobilapplikasjoner. For å finne ut om en VR-applikasjon er god så er det ofte lurt å tenke på om VR er det beste mediet å bruke og om applikasjonen utnytter styrkene av VR som teknologi. Hvis den ikke gjør det så kan det lønne seg å tenke på om man kunne hatt et annet design som passer bedre i VR eller å bruke andre typer teknologi som kan nå målet med applikasjonen bedre en VR.  

Du kan lese mer om VR-satsningen vår her

Eirik Wilhelmsen Holhjem (t.v.) og Bård Mangus Sødal i dyp diskusjon