Hopp til hovedinnhold

Teknologi / 10 minutter /

Utvid din horisont - om synsvidde og VR

Har du noensinne fundert over hva du faktisk ser på en skjerm? Har du tenkt over at en skjerm egentlig er et vindu inn i en verden?

Dette gjelder så sant det er snakk om gjengivelse av en 3D-verden, enten ekte eller fiktiv. De fleste filmer, og mange animasjoner, havner i denne kategorien, samt svært mange spill og simulatorer. Men det interessante er at nesten ingen brukere får riktig opplevelse - og skylden må deles mellom produsentene og brukerne.

Gjetter du nå kanskje på at du kan forbedre din egen VR-opplevelse av å lese videre? Smart du, det er helt riktig!

Synsvidde, og historietime

Er det én ting du skal lære av denne artikkelen, så er det hva synsvidde er. For enklere googling, så er det engelske begrepet field of view, eller FOV. En illustrasjon og en definisjon:

Viser en persons FOV. Det som er utenfor synsvidde er markert rødt.
Viser en persons FOV. Det som er utenfor synsvidde er markert rødt.


Synsvidde er rett og slett vinkelen mellom ytterpunktene av hva man ser. Denne kan måles vertikalt og horisontalt, men det mest vanlige er horisontalt. Har man ikke spesifisert noe, så antas det som regel at det er dette som menes.

I forbindelse med en skjerm så er det egentlig tre relevante synsvidde-målinger, nummerert i henhold til figuren:

  1. Hva brukerens øyne ser/kan se. Mennesker kan typisk se omtrent 180 grader - 145 av disse i 3D, for øvrig. TV’en, kino-lerretet eller dataskjermen dekker bare en del av den fullstendige synsvidden.
  2. Trekk rette linjer fra øyet og gjennom ytterkantene av skjermen, ref illustrasjonen. Vinkelen mellom disse er synsvidden som kombinasjonen av bruker og skjerm har - i øyeblikket.
  3. Programvarens/filmens/animasjonens synsvidde. Denne er kalkulert ut fra kameraets posisjon - enten det er et reelt eller fiktivt kamera. For programvare vil en synsvidde av samme verdi som i punkt 2 tilsvare at det tenkte kameraet befinner seg i akkurat samme posisjon som brukerens øye. Det er da vi opplever det samme som i illustrasjonen over, nemlig at linjene fortsetter naturlig innover i skjermen/3D-verdenen.

Illustrasjonen er altså det korrekte oppsettet. Ballene som er tegnet inn er en del av den virtuelle verdenen. De grønne er plassert slik at man ser dem i ytterkant av synsfeltet sitt, på hver sin side. De røde ballene er akkurat for langt ute til å være synlige akkurat nå - for å se dem må man enten bevege seg eller snu på hodet.

Men, hva skjer hvis oppsettet ikke er korrekt? Den mest vanlige feilen, er at programvarens synsvidde er satt til en for høy verdi. Da vil du kunne oppleve følgende:

En programvares FOV er for bred når den tar med det som er utenfor personens FOV.
En programvares FOV er for bred når den tar med det som er utenfor personens FOV.

Er det noe problem dette, da? Nå ser du jo mer av verden, inkludert de røde ballene! Jo, dette er et problem, for perspektiv, størrelsesforhold, vinkler og rotasjon blir tullet til. Slike ting forvirrer den stakkars menneskehjernen, og gir oss signaler om at “dette er ikke virkelig”. For en programvare som har som mål å gjengi opplevelsen av en 3D-verden, så er dette uheldige signaler. Den faktiske opplevelsen av for høy synsvidde kjennetegnes av følgende:

  • Objekter nær midten av skjermen oppleves som mindre, og lenger unna, enn de faktisk er.
  • Objekter nær kanten av skjermen oppleves som større, og nærmere, enn de faktisk er. I tillegg kan de oppleves som “dratt”, som om noe strekker objektet i den ytterste enden.
  • Når man roterer, så vil rotasjonen oppleves som treigere enn forventet.
  • Ved rotasjon vil objekter også endre seg - de går fra å være store og nærme når de er ved ytterkanten, så blir de små og langt unna når de skulle vært rett foran oss, og de oppleves igjen som store og nærme rett før de forsvinner ut av den andre ytterkanten.

Motsatt, da? Ved for lav synsvidde? Da vil du se mindre enn du egentlig skal, men opplevelsen av det du ser er i det minste ganske grei. Perspektiver og innbyrdes størrelsesforhold virker fornuftige - ihvertfall så lenge oppsettet bare har bommet med “en del grader”. Den detaljen som dog skurrer aller mest, er rotasjon. Med for lav synsvidde, så vil rotasjon oppleves som raskere enn forventet. Dette kan føre til svimmelhet og kvalme. Slike plager kan også inntreffe ved for høy synsvidde, men er dog noe mindre vanlig.

Grrrreit, vi må ha riktig synsvidde. Men hva er så riktig synsvidde? 90 grader? 65 grader? 45,7 grader? Svaret er at det finnes ikke ett riktig svar. Det vil alltid avhenge av hver brukers egen situasjon. Dvs øyets posisjon, avstand til skjerm, og skjermens størrelse. Riktig verdi kan regnes ut ved hjelp av trigonometri; mål avstand fra øye til skjerm, og bredden av skjermens synlige del, og bruk det til å regne ut vinkelen. MEN, enhver produsent av programvare burde også tilby en enkel kalkulator eller wizard for enkelt og korrekt oppsett! Noen gjør dette, andre synder, mens atter andre ikke engang tilbyr konfigurasjonsmuligheter…

La oss et lite øyeblikk glemme matematikken og definisjoner, og heller tenke intuisjon. Innledningsvis snakket jeg om at en skjerm er et vindu inn i en verden. Tenk deg så at du har en ramme på samme størrelse som skjermen din, og på samme avstand. Det du ser gjennom den skal tilsvare det du ser i gjengivelsen på skjermen. Her kommer et av de mer berømte bildene, fra en av pionerene som forsøkte å forklare oss hva riktig synsvidde var:

Synsfeltet til en sjåfør i førersetet, med en firkant midt i ruten for å illustrere hvor stor en dataskjerm ville vist.
Synsfeltet til en sjåfør i førersetet, med en firkant midt i ruten for å illustrere hvor stor en dataskjerm ville vist.


Motargumentene, den gang som nå, var “jeg ser ikke nok” og “fartsfølelsen blir borte” - ihvertfall i bilspill/simulatorer. Årsaken til sistnevnte er nettopp at mye av sidesynet forsvinner, og det er der det er mest bevegelse og man plukker opp fartsfølelse. Det finnes også mye annet å legge til om fartsfølelse, men det får eventuelt bli ved en annen anledning. I alle fall, argumentene er faktisk gyldige! Så hva gjør vi med det? Jo, vi sørger for å skaffe oss selv en større matematisk korrekt synsvidde!

Nok en kjapp illustrasjon: En matrise over tre ulike skjermstørrelser og tre ulike avstander til øyet, og utregnet synsvidde for hver situasjon.

Synsvidde basert på ulike skjermstørrelser. Synsvidden har range fra 28" til 127" avhengig av størrelsen på skjermen.
Synsvidde basert på ulike skjermstørrelser. Synsvidden har range fra 28" til 127" avhengig av størrelsen på skjermen.


Her ser vi at både avstand og skjermstørrelse har stor effekt. Det beste er naturligvis å ha så stor skjerm som mulig, og å sitte så nærme som mulig! De fleste brukere vil som regel kunne finne måter å sette seg nærmere skjermen på, ihvertfall hvis dette er noe de ikke har tenkt over tidligere.

Effekten av å endre konfigurasjon av synsvidde kan for øvrig være enorm. Her en illustrasjon fra en typisk “first person shooter”. Samme kameraposisjon, men høy synsvidde øverst, lav nederst, og i midten er de illustrert “oppå” hverandre:

En spillprodusent har forvridd et bilde ved å sette sammen to perspektiv. Dette øker synsvidden.
En spillprodusent har forvridd et bilde ved å sette sammen to perspektiv. Dette øker synsvidden.

Merk at her har produsentene gjort en stor feil realismemessig: Scenen rendres i utgangspunktet korrekt, men så tegnes skytevåpenet på med samme utseende etterpå, helt uavhengig av synsvidde! Alt man ser skal jo påvirkes av synsvidde.

Flere konsepter som påvirker opplevelsen

Like viktig som synsvidde, er det som har vært implisitt frem til nå: Øyets posisjon! Dette kalles på engelsk point of view, eller POV. Hvis vi går tilbake til analogien med et vindu, se for deg at du stiller deg på forskjellige posisjoner foran vinduet. Står du for eksempel langt til venstre, så ser du kanskje flere trær eller biler på høyre side av vinduet. Setter du deg på huk, så ser du kanskje bare himmelen, mens om du stiller deg oppå en krakk ser du mest nedover.

Konsekvensen av dette er jo at øyets posisjon har betydning for hvordan bilder skal vises på skjerm. Men, såvidt meg bekjent, så er alt i praksis laget med én gitt korrekt øyeposisjon - evt ingen korrekte, hvis utviklerne ikke vet hva de driver med. Og dette gjelder både film og programvare. Kinosaler kan være store og kjempeflotte, med fantastiske lerret, men strengt tatt er det maksimalt én person i salen som ser et helt korrekt bilde. Og det kan godt være at den ideelle posisjonen i en sal svever i løse luften, slik at ingen sitter helt korrekt.

En person i midten av en kinosal bildet vises som den ene personen som ser filmen med riktig FOV.
En person i midten av en kinosal bildet vises som den ene personen som ser filmen med riktig FOV.

Kinosaler er det nok ikke så mye å gjøre med, men når det gjelder egen opplevelse på egen datamaskin, så kan man i det minste lære seg følgende: Den optimale posisjonen er plassert midt foran skjermen - også med tanke på høyde.

Så, med korrekt posisjon og synsvidde, da må vel alt være i orden? Nja, det finnes nok et problem, som ikke har noen opplagt løsning. Under vanlige forutsetninger, hvor alle objekter er relativt langt unna, så er alt greit - dette er det vi har snakket om så langt, med å se gjennom vinduet. Men med objekter som er så nærme oss at de er “foran” vinduet får vi trøbbel. Det vil altså si følgende situasjon, ballen er nærmere øyet enn skjermen/vinduet vi skal se gjennom:

En kule plassert bak skjermen, og et annet perspektiv hvor kulen er plassert foran skjermen.
En kule plassert bak skjermen, og et annet perspektiv hvor kulen er plassert foran skjermen.

Det matematisk korrekte her er å projisere objektet bakover til skjermen, slik at det i praksis vokser i størrelse. Men, vent litt, hvis dette er matematisk korrekt, er det ikke da greit? Nei, dessverre. Saken er at å blåse noe opp aldri føles like korrekt som å forminske objektene som er langt unna. Og dette henger sammen med vår oppfattelse av skjermens størrelse. Vi vet på en måte hvor stor skjermen er, og det finnes gjerne referanser ved siden av, som vinduer, bøker, møbler, lamper, hva som helst. En bitteliten maur rett foran øyet dekker mye av synsfeltet, men vil likevel se feil ut når den blåses opp til uante dimensjoner på en stor skjerm eller et stort lerret lenger unna.

En alternativ løsning er rett og slett å ikke rendre objekter som er for nære, men heller ikke det er en optimal løsning. Objekter vil jo da komme inn og ut av syne på unaturligvis i skjæringspunktet. Og hva hvis objektet er stort eller går langt innover, skal det da kuttes? Hva med en husvegg, skal man plutselig se gjennom denne dersom man stiller seg for nærme?

Enda et alternativ er å lese videre!

Forsøk på å være smarte

Gitt det verden etterhvert lærte om synsvidde, så har det kommet mange forsøk på å være smarte.

Skjermstørrelse er naturligvis en viktig parameter, og generelt har folks skjermstørrelser økt betraktelig. Spesielt TV’er. Og, ikke bare har skjermstørrelsene økt, men på et tidspunkt gikk også verden over fra tradisjonelt 4:3-format til 16:9-widescreen. Av noe nyere dato finnes buede skjermer. Disse gir en mer jevn avstand fra øyet til hver pixel på skjermen.

Ulike produsenter begynte også å tilby løsninger for oppsett med flere skjermer, både gjennom å bruke flere skjermkort og å skaffe ekstern hardware. Det som etterhvert ble drømmen for mange, var et trippelskjermoppsett. Disse kan forsåvidt settes på linje ved siden av hverandre, men for de fleste var drømmen å sette dem vinklet, slik at det i større grad blir som å sitte “inni” bildet.

Et multiskjermoppsett. Skjermene er satt litt på skrå i ytterkant for å bedre perspektiv og synsfelt.
Et multiskjermoppsett. Skjermene er satt litt på skrå i ytterkant for å bedre perspektiv og synsfelt.

I et multiskjermoppsett har man mye større synlig flate, men må samtidig tenke over rammen rundt skjermene, dette er flater som plutselig kommer innenfor synsvidden, men som ikke bidrar til å vise bildet. Hvis det ikke tas hensyn til dette, så vil objekter hoppe litt unaturlig mellom skjermene, linjer og vinkler vil føles litt feil, og objekters posisjoner i sideskjermene er teknisk sett ikke helt korrekte. De fleste hardware-produsenter, og noen programvareutviklere, har laget støtte for å kutte ut en gitt mengde pixler i overgangene mellom skjermene, hvilket er en relativt god løsning. Man går da glipp av kanskje et par centimeter av bildet, men til gjengjeld får man rimelig smidig overgang mellom skjermene.

Men det kommer dessverre enda en utfordring med multiskjermoppsett: Selv om man tar hensyn til rammene, så blir ikke bildet helt korrekt. Det vil si, skjermer på linje kan faktisk vise korrekt bilde, men da utnytter man samtidig ikke skjermflatene spesielt bra og får en mye lavere synsvidde enn man kan få med vinklete skjermer. Men, hvis man regner synsvidde ut fra at man har én kjempebred skjerm, eller tre ved siden av hverandre, så blir ikke bildet på vinklete sideskjermer korrekt. Her får vi igjen samme effekt som å ha stilt inn for høy synsvidde - objekter blir dratt, og roterer for fort. Men nå mest i utkanten av sideskjermene.

Løsningen på dette er det som kalles multipart rendering. Det vil i praksis si å rendre separate bilder for hver skjerm, gitt hver sin separate kameravinkel. Fordelen med dette er altså at man får korrekte bilder på alle skjermer, ulempen er at det koster bortimot tre ganger så mye grafikkprosessering for trippelskjermer. For samme bilderate og/eller detaljnivå som man fikk på én skjerm, trenger man altså vesentlig sterkere hardware.

Kanskje det finnes andre alternative løsninger for å kunne se mer, gjerne billigere løsninger enn å investere i de tøffeste skjermkortene og flere skjermer? Ja, det var noen smarte folk som fant på å ta i bruk head-tracking. Det mest kjente produktet heter TrackIR, og benytter seg blant annet av IR for å spore hodebevegelser.

Poenget med head-tracking er å bruke hodets rotasjon til å rotere/styre kameraet. Og dette kan gjøres i mange dimensjoner. Posisjonelt: høyre/venstre, opp/ned, frem/tilbake. Og tilsvarende kan man rotere kameravinkelen rundt tre ulike akser. Tenk pitch, roll og yaw på engelsk. Etter smak og behag, eller behov, kan brukeren selv konfigurere om alle eller et utvalg dimensjoner skal være aktive, og om hodets bevegelser skal være 1-1 med kameraet eller om bevegelsene skal dempes eller overdrives. Resultatet er at det på en enkelt skjerm kan være mulig å se rundt i alle mulige vinkler, også bak seg.

Dette er da fantastisk? For fantastisk til å være sant, kanskje? Stemmer. Slik head-tracking har selvfølgelig sin misjon og sine tilhengere, og kan fungere fint til statiske eller semi-statiske omgivelser, som for eksempel flysimulatorer. For mer action-pregete opplevelser, eller der man er nødt til å føle nøyaktige rotasjoner, som for eksempel i bilsimulatorer, så fungerer det mindre bra. Saken er at strengt tatt er ingenting av det man ser på skjermen korrekt lenger… Dette kan illustreres med noen enkle figurer:

Utgangspunkt:

En blå og en rød kule. Fokus og skjermen er sentrert på den røde kulen. Den blå er utenfor synsvidde.
En blå og en rød kule. Fokus og skjermen er sentrert på den røde kulen. Den blå er utenfor synsvidde.

Så ønsker man å kunne se den blå ballen, á la følgende:

Skjermen er vridd, men på grunn av vridningen klarer ikke øynene å fokusere rett på den blå kulen.
Skjermen er vridd, men på grunn av vridningen klarer ikke øynene å fokusere rett på den blå kulen.

Men det er dessverre ikke sånn det fungerer. Skjermen har jo ikke flyttet seg, den står fortsatt på sin plass. Ergo havner man i den unaturlige situasjonen at man må vri hodet som om man skulle sett rett på den blå ballen, men må vri øynene til siden for å kunne på skjermen. Og skjermen later som om den er rotert, og tegner opp bildet gitt en fiktiv øyeposisjon i parallell med hodets rotasjon. Men skjermen er jo ikke rotert, så heller ikke for denne fiktive posisjonen ville bildet blitt riktig. Forsøk på å illustrere denne herlige forvirringssuppen:

Fokus består på den røde kulen. Brukeren må vri på hode og fokus for å få øye på den blå kulen.
Fokus består på den røde kulen. Brukeren må vri på hode og fokus for å få øye på den blå kulen.

Så, selv om dette fungerer for noen, så er det et blindspor for mange andre.

Enda en smart gjeng fant opp 3D-skjermer, som gir en illusjon av dybde. Men, la oss være ærlige. Selv om det er kult å kunne se “inn” i en skjerm, så er det fortsatt bare “en illusjon på en flate der borte et sted”. Og, hvem er det som med hånden på hjertet kan si at det føles naturlig når noe kommer “ut” av skjermen? For meg har 3D-skjermer bare vært en morsom gimmick. Men, les videre!

Virtual Reality - redder verden?

En person som kjører et billøp ved hjelp av VR briller.
En person som kjører et billøp ved hjelp av VR briller.

Så har vi endelig kommet til oppfinnelsen til de aller smarteste folkene: Virtual Reality! Strengt tatt har dette vært “funnet opp” mange ganger, og har med rette feilet flere ganger tidligere. Denne siste bølgen har dog skjønt mye mer og gjør ting mer korrekt enn sine forgjengere, og, ikke minst, det finnes nå hardware som klarer brasene!

La oss begynne med å se på hva som er så bra med VR. I praksis alt som har vært diskutert til nå er gjort korrekt med VR:

  • Korrekt synsvidde – check (“one FOV fits all”)

  • Man kjenner avstand fra øye til skjerm, man kjenner skjermstørrelsen, og kan dermed regne ut én FOV som er korrekt for alle. Intet behov for hver bruker å konfigurere manuelt.

  • Bred synsvidde – check

  • Selv om skjermene er små, så er de såpass nærme at en stor del av synsfeltet blir dekket.

  • Optimal POV – check

  • Øynene plassert så midt foran skjermen som mulig.

  • Eliminert objekter “foran vindu” – check

  • I og med at avstanden mellom øyne og skjerm kan måles i millimeter, så er det kun dette svært korte området som i teorien kan ha objekter mellom kamera og vinduet.

  • Naturlig og bedre 3D – check

  • To skjermer, hvor hver skjerm genererer et bilde slik det aktuelle øyet ville ha sett den virkelige scenen. I praksis genererer programvaren to ulike bilder basert på to kameraposisjoner like ved siden av hverandre. Resultatet er at input til hjernen er akkurat likt virkeligheten, og man benytter hjernen til å smelte sammen bildene til et naturlig 3D-bilde.

  • Naturlig og fungerende head-tracking – check
    • Husk tilbake til head-tracking med tradisjonell skjerm, der var problemet nettopp at skjermen var stasjonær. Med VR følger skjermene etter når man snur på hodet, og alt programvaren trenger å gjøre er å oppdatere kameravinkel og posisjon. Nåværende generasjon VR benytter både IR-sensorer, akselerometer, gyroskop og magnetometer.

  • Dekke hele synsfeltet – check

  • Skjermene dekker riktignok ikke HELE synsfeltet, men det rundt skjermene er det bare svart, og dermed ingen andre synsinntrykk som forstyrrer opplevelsen. Man slipper å forholde seg til at man er i et rom og ser på en skjerm.

Summen av alt dette gir en hittil uovertruffen følelse av å “være i det”. Det at det eneste man ser er den virtuelle verdenen, at kamera flytter seg 100% i takt med hodet, at man får naturlig 3D og at alt øvrig er korrekt, gjør at opplevelsen rett og slett blir riktig, og at man faktisk gis en følelse av å være i verdenen man ser.

Hjernen bruker triks for å se tredimensjonalt og dømme avstand til et objekt.
Hjernen bruker triks for å se tredimensjonalt og dømme avstand til et objekt.

Her passer det fint å dra inn en personlig opplevelse. Mitt første møte med HTC Vive var sammen med to kolleger. Vi lastet flere av minispillene fra The Lab, deriblant Xortex 26xx. Dette er et typisk “ting kommer flyvende mot deg og skyter”-spill, hovedforskjellen fra 80-tallet var at det nå var i 3D og VR. Jeg så først en kollega spille det, og tenkte at det så greit nok ut. Da jeg prøvde selv, føltes det som om objektene var mye nærmere enn det jeg først hadde fått inntrykk av. I fullt alvor utbrøt jeg da “Men i virkeligheten var de jo mye nærmere”. Merk uttrykket i virkeligheten. Det tok et sekund eller to før jeg selv skjønte hva jeg hadde sagt...

Skjermbilde fra spillet Xortex 26xx
Skjermbilde fra spillet Xortex 26xx

Berikelser av VR-opplevelsen

Slik jeg har beskrevet VR til nå, så har det tross alt bare vært snakk om grafikk. For fullstendig innlevelse trenger man også en mer utfyllende opplevelse. Det er da mye det går an å berike VR-opplevelsen med.

Posisjonell lyd

Posisjonell lyd er et viktig konsept, som faktisk allerede er godt støttet av de fleste produsenter. Poenget er at for korrekt innlevelse, så må lyden føles som den kommer fra samme sted som den befinner seg i den virtuelle verdenen. Dersom en hund bjeffer litt bak deg til høyre, så bør også lyden komme derfra - og hvis den løper rundt deg, så bør lyden også flytte seg. Dette kan man i stor grad ordne gjennom at lyden når det “nærmeste” øret først, og til det andre øret en liten mikroforsinkelse senere, samt naturligvis ulikt volum.

Dette må selvfølgelig også fungere sammen med head-trackingen, slik at headsettet får med seg både hvilken posisjon og rotasjon kameraet har i forhold til den virtuelle verden.

En person i senter. En hund, og høyttaleren nærmest hunden lyser rødt for å signalisere hvor lyden kommer fra.
En person i senter. En hund, og høyttaleren nærmest hunden lyser rødt for å signalisere hvor lyden kommer fra.
To VR hansker. Ene er en ordinær hanske med sensorer, den andre er festet utenpå hånden til en person.
To VR hansker. Ene er en ordinær hanske med sensorer, den andre er festet utenpå hånden til en person.


Haptic feedback er bransjens overordnete betegnelse på det mange kjenner som force feedback. Men det dreier seg om mye mer, hele kroppen er i teorien mottakelig for feedback som skal simulere fysiske berøringer, og tyngde/motstand.

Motivasjonen er enkel: Lite ødelegger innlevelsen mer enn å gå gjennom eller ikke å kjenne omgivelsene og objektene man prøver å late som man er omgitt av. I tillegg er det foreløpig ikke mulig å interagere med omgivelsene gjennom å ta på dem.

Det hadde vært flott med komplette drakter og enda mer kompliserte systemer, men det viktigste førstesteget er hansker. Med disse vil man kunne trekke/dytte på fingre og ledd akkurat nok til å kunne føle objekter. Det vil selvfølgelig fortsatt være mulig å overvinne styrken, og for eksempel strekke hånden sin gjennom veggen, men gitt at man reagerer naturlig på signalene kroppen får, så vil objekter kunne føles relativt korrekte. Det er dog fortsatt en lang vei fra prototyper og forskning til reelle praktiske masseproduserte enheter. Mulighetene er ihvertfall fantastiske. Det vil kunne bli mulig å trykke på knapper, dra i spaker, vri brytere, plukke opp objekter med hånden heller enn VR-kontrollere osv. Kontrollrom og dashboard kan opereres som de er, heller enn å trykke på knapper i den virkelige verden, som jo er knapper man ikke ser og som ikke er den av den virtuelle virkeligheten.

Simulering av G-krefter

I verdener hvor man stort sett går rundt som mennesker eller menneskeliknende vesener, så holder det i stor grad å føle den ordinære gravitasjonen. Men straks man sitter i fartøy som er i bevegelse, tenk for eksempel bil, båt og fly, så føler man i virkeligheten gjerne store krefter ved akselerasjon, brems og retningsendring. Dette ville vært fint å føle i virtuell virkelighet også.

Det finnes to vellykkede skoler for simulering av G-krefter: Punkttrykk og motion platform.

Punkttrykk vil rett og slett si at noe presser på kroppen på ulike punkter. Dette vil aldri tilsvare kreftene som simuleres, men konseptet fungerer heller ved at trykkene oppleves som hint om kreftene man skal føle, og har faktisk positiv effekt på illusjonen. Av ulike årsaker som snart vil bli forklart, så er det litt forsinkelse i opplevelsen ved bruk av motion platform, mens dette unngår man med punkttrykk. Den umiddelbare tilbakemeldingen kan for mange overgå svakheten ved at kreftene ikke er så sterke som de kunne vært. Denne skolen fungerer også utmerket sammen med VR.

Eksempel på sete laget for punkttrykk for bilkjøring:

Motion platforms er komplette plattformer som beveger seg, hvor både setet (der man gjerne er festet med belter) og skjermer er montert på samme plattform, slik at skjermen står i fast posisjon i forhold til øynene. Motion platforms simulerer G-krefter gjennom å utnytte gravitasjon. Se for deg at plattformen vippes 90 grader, slik at man ser rett oppover. Da vil man føle det som om seteryggen presser på med 1g - altså tilsvarende en akselerasjon på 1g! Tilsvarende, å se rett ned tilsvarer deselerasjon på 1g. Å vippes til helt over på en side tilsvarer å svinge til motsatt side med 1g. Så kan man naturligvis blande alle disse i forskjellig grad, så lenge totalen er 1g eller mindre. Det eneste som ikke lar seg simulere er fritt fall, da man jo hele tiden vil føle at noe holder deg oppe… Det fantes i det minste et kickstarter-prosjekt som hadde som mål å simulere vind i henhold til fysikken i den virtuelle verdenen, men dette ble dessverre kansellert pga manglende investeringer.

Eksempel på motion platforms, en laget for bilkjøring og en mer ekstrem for flysimulator:

Motion platforms har en kjempeutfordring, nemlig at for å oppnå riktig posisjon der man føler riktige krefter må selve plattformen beveges. Det innebærer en viss forsinkelse, og dermed mismatch mellom hva man ser og hva hjernen forventer å føle. Produsentene jobber naturligvis med å minimere denne forsinkelsen, med mål om at den til slutt skal bli nesten neglisjerbar. Men dette er dessverre ikke hele utfordringen, for selve bevegelsen for å oppnå riktig posisjon gir gjerne et kort motsatt signal av hva man egentlig skal føle. Mange produsenter jobber også med å ta hensyn til både bevegelse og ønsket posisjon for å gi en til enhver tid mer korrekt opplevelse, men dette er matematisk komplisert og vanskelig å oppnå.

I tillegg finnes et bonusproblem med tanke på VR. I utgangspunktet har ikke VR-brillene noe forhold til motion platformen, og vil oppleve rotasjon som et ønske om å rotere kameraet i den virtuelle verdenen. Men det blir jo feil å se rett opp i taket i en bil bare fordi man gir full gass - øynene er jo fortsatt rettet fremover og forventer å se veien foran seg. Med nåværende generasjon VR er man nødt til å lage en kobling mellom motion platformens tilstand og VR-brillenes drivere, hvor kameraet justeres i motsatt retning av hva plattformen har beveget seg til. Norske Drammen Racingsenter kan for øvrig ha vært de første verden som fikk til dette!

Eye-tracking

Mens vi er i gang, kan vi også ta med en berikelse som går på det grafiske, nemlig eye tracking. Eye-tracking er et konseptet det allerede er forsket mye på, det dreier seg om å detektere hvor øynene peker og å utnytte det. Foreløpig kun til interaksjon i andre typer applikasjoner, men i VR vil gevinsten kunne være å gjøre opplevelsen mer naturlig - gitt at ting blir gjort slik jeg ønsker meg…

I skrivende stund er bildet i VR klarest midt på skjermen. Det betyr at dersom du bruker øynene til å se deg rundt, heller enn å snu hodet, så er ikke bildet så tydelig som det bør være. Egentlig burde skjermene vært gode nok til å kunne gi tydelig bilde på ethvert punkt øyet fokuserer på, og ved behov bruke svake blur-effekter på områder langt bort fra øyets fokus.

Men enda viktigere er at i virkeligheten ser man ikke alle objekter like fokusert, selv om de er midt i synsfeltet. Årsaken til dette er at man bare klarer å fokusere på én dybde av gangen. Fokuserer man på noe nærme, så vil objekter langt unna være utydelige. Og omvendt. I tillegg vil de nærmeste objektene se doble og gjennomsiktige ut når man fokuserer på noe bak dem. Dette med å gi klarere bilde basert på dybdefokus vil i VR kreve at eye-trackingen faktisk kan brukes til å konkludere med hva brukeren fokuserer på. Det er en del som gjenstår for at dette skal kunne fungere optimalt.

Problemer og utfordringer med VR

Ironisk nok er det slik at jo mer realistisk en simulert opplevelse er, jo mer plages man av detaljer som ikke er helt riktige. Dette er en av årsakene til at flere opplever svimmelhet, kvalme eller ubehag med simulatorer og spesielt VR. Det er derfor så viktig å komme HELT i mål med VR. Uavhengig av eventuelle ubehag, så er det også andre begrensninger og utfordringer med VR, som vi tar en titt på her.

Synsvidden må rett og slett økes mer. Mens vi ser rett frem, så har vi mennesker en synsvidde på rundt 180 grader - og dette er før vi begynner å bevege øynene. De mer kjente produsentene ligger foreløpig på rundt 100-110 grader synsvidde, hvilket i flere scenarier oppleves begrensende. Star VR, derimot, er planlagt å få 210 grader, da begynner det å bli bra!

Oppløsningen på dagens VR-skjermer er imponerende, men dessverre ikke bra nok ennå. Og, det som er så dumt, er at det er ganske utfordrende å få skalert opp. Det trengs jo en skjerm til hvert øye, som må lage hvert sitt bilde, og dette krever sitt av GPU/CPU. For å gjøre det enda morsommere, så burde det egentlig genereres bilder som er vesentlig STØRRE enn skjermenes oppløsning, for å kunne downsample og lage god anti-aliasing. Og som om det ikke er nok, så kreves enda mer av GPU/CPU: For å fungere skikkelig trenger VR en høy bilderate. En ting er at ikke alle er fornøyd med dagens standard på 90 bilder per sekund, og vil ha denne høyere, men en ytterligere utfordring er at bilderaten må være stabilt høy. Når brukeren snur hodet, så må oppdateringen være umiddelbar og ikke hakke, og det er nettopp slike situasjoner som krever mest grafikkberegninger. For ordens skyld: For all del ikke bruk gammeldags v-sync, som per design har lagt inn forsinkelse for å kunne gi en jevn bilderate. Men da blir jo alt forsinket og ute av synk.

Selv om bilderaten mot formodning er høy, så er dette faktisk ikke nok. Man må også sørge for å ha høy oppfriskningshastighet på pixlene - det vil si at når en pixel får beskjed om å endre farge, så må dette være en rask og tydelig transisjon. Hvis dette drøyer, så vil ikke enkelt-bildene innprentes i øynene, og synsopplevelsen blir mer uklar. Og enda en detalj vedrørende pixlene: De må ligge tett inntil hverandre, og fylle hele flaten. Gjør de ikke det, så får vi det som på engelsk kalles screen door effect. Dette kan visualiseres som et svart rutenett mellom frittstående fargefirkanter (pixler). Noen er følsomme for dette, andre i mindre grad.

Vi kan ta med enda litt mer moro når det gjelder skjerm og oppløsning. Det er jo slik at pupiller er runde, og hadde det ikke vært for øyehulene som gjør at synsfeltet blokkeres delvis av vårt eget ansikt, så ville ha hatt et relativt rundt synsfelt. For å dekke dette ville det vært perfekt med en rund skjerm, men det konseptet er foreløpig ikke oppfunnet - og passer heller ikke helt med dagens måte å gjøre ting på, hvor pixler på en skjerm er et rektangulært rutenett. Så for å dekke hele synsfeltet kan man se for seg et rundt omriss, og så må man lage et enda større rektangel som dekker hele dette runde omrisset. Går man for en slik løsning, så er det også opplagt at i hvert hjørne av rektangelet, vil det være massevis av pixler det er brukt regnekraft på å regne ut, og som aldri vil bli sett. Igjen, uheldig med enda mer krav til GPU/CPU.

Ikke bare burde skjermer egentlig vært runde, de burde også ha vært buet. Ved å bevege øyet, så endres faktisk avstanden mellom pupill og skjerm. Dette er marginalt, men med tanke på at avstanden er så liten, så får det likevel effekt. I illustrasjonene her er det også vist at en skjerm som kanskje er stor nok når man ser rett frem, ikke nødvendigvis er det når man ser til siden.

Ulike skjermperspektiv. Rett frem er synsfeltet riktig. Ved ytterpunkt av skjermen blir det forvridd og feil.
Ulike skjermperspektiv. Rett frem er synsfeltet riktig. Ved ytterpunkt av skjermen blir det forvridd og feil.

La oss også huske eye-tracking. Foreløpig er bildet klarest når man fokuserer på midten av skjermen, men det må også være mulig å fokusere på andre deler og få et like klart bilde. Så om man vil unngå uklare bilder, med marginalt feil synsvidde pga dynamisk avstand mellom pupill og skjerm, så bør man fortsatt helst se rett frem i VR-briller.

Noe som ikke har vært nevnt i så stor grad ennå, er at mennesker er individer, og alle er forskjellige. Alle har litt ulike øyehuler og dybde inn til øynene. Det er dermed også naturlig at man finner litt ulike posisjoner der VR-brillene føles som de passer bra. Plutselig stemmer ikke lenger et sitat fra tidligere kapitler helt; “og kan dermed regne ut én FOV som er korrekt for alle. Intet behov for hver bruker å konfigurere manuelt”. Dette løses delvis gjennom at brukere teknisk sett skal gjennomgå en personlig konfigurasjon. Men VR-briller som deles av flere, brukes på museer og slikt, vil jo typisk være satt opp til å passe noen tilfeldige personer, slik at de ikke kan forventes å være 100% korrekte for hele brukermassen.

Men det er ikke bare dybden som er ulik, avstand mellom øynene er også individuell. Noen har øynene tett sammen, andre har dem langt fra hverandre. Foreløpige VR-briller har skjermene/linsene i faste posisjoner, og tar ikke hensyn til avstanden mellom øynene. Personer som da er utenfor “riktig vindu” avstandsmessig vil oppleve synsvinkelen litt feil, og dette vil også påvirke hvordan hjernen smelter sammen bildene.

Mens VR endelig er den naturlige 3D-opplevelsen mange drømte om i lang tid, så har det ironisk nok dukket opp et 2D-problem. Vi har blitt vant til å bruke overlays/heads-up-display, altså 2D-grafikk som legger seg over bildet. Dette kan være ordinær tekst, av type meny eller utlisting av informasjon, og det kan være mer grafiske ting som speedometer. Uheldigvis fungerer ikke disse som før i VR. Selv om “det bare er snakk om å vise noe 2D oppå 3D-bildet”, så er det ikke så enkelt. Alt må ha en dybdeplassering, så i praksis vil man oppleve 2D-grafikk som noe flatt som unaturlig svever rundt i verdenen man ser. Antakeligvis vil løsningen være en blanding av å gå bort fra denne typen 2D-grafikk, og å inkorporere den mer naturlig i 3D-verdenen. For eksempel ved å ha kontrollskjermer man ser på, eller skilter, eller plakater på vegger, reelle dashboards osv.

Selve det fysiske produktet VR-briller er også litt problematisk. Blir brillene for tunge, så vil det også påvirke opplevelsen og kunne ha uønskede bieffekter over tid. Samtidig er smuss og dugg på linsene vanlige problemer. Det er heller ikke bare-bare å skulle gjøre noe med dette mens man er i VR-opplevelsen, brillene må jo faktisk tas helt av. For øvrig har jeg selv, i jakten på den minste mulige avstanden til linsene, opplevd å komme borti med øyevippene. Og da er vi tilbake til det kapitlet ble innledet med, jo mer realistisk noe er, jo mer forstyrrende er det med detaljer som minner oss på at dette ikke er ekte.

Bonusproblemer

Som om ikke forrige kapittel var nok, så velger jeg å ta med et par bonusproblemer:

  • Man ser ikke sin egen kropp i VR.
  • I mange tilfeller styrer man en figur med en kropp, gjerne et menneske på omtrent samme størrelse som seg selv. Men det mangler sensorer som forteller programvaren nøyaktig hvor armer og bein egentlig skal være, kroppens positur etc. Dermed vil det foreløpig aldri være helt en-til-en-opplevelse dersom man styrer en synlig figur. Dersom programvaren har valgt å ikke vise figuren, eller kun deler av den, så vil heller ikke dette føles helt riktig.
  • Man ser ikke ting rundt seg, altså utenfor VR-brillene.
  • Av og til trenger man å interagere med ting i virkeligheten, som for eksempel tastatur, mus, spillkontroller, vannflaske ++. I tillegg mister man muligheten til å kunne ta notater på papir, eller lese notater/instruksjonsbøker. Om noen kommer og snakker til deg, så vil du ikke kunne se dem. Noe av dette kan kanskje løses ved hjelp av eksterne kameraer, og programvare som tilbyr å vise eksterne bilder ved behov?

Bytte ut V med A eller M?

Med tanke på bonusproblemene omtalt i forrige kapittel, kanskje det ikke faktisk er VR som er den endelige løsningen likevel? Kanskje det heller er AR eller MR?

AR, Augmented Reality, vil si at man ser den virkelige verden rundt seg. Oppå denne vises datagenererte bilder. Hvis vi et øyeblikk forestiller oss at AR-briller dekket hele synsfeltet som VR, men kunne hatt variabel gjennomsiktighet i bildet, så får vi løst mye av problemet med at man ikke ser ting rundt seg. Om beste løsning er noe gjennomsiktighet til enhver tid, eller kommandoer for å øke/minke gjennomsiktigheten ved behov, er ikke så godt å vite, men dette kan være et riktig spor.

MR, Mixed Reality, er i utgangspunktet det samme som AR. Det finnes dog nyanser her. AR er ment å være noe “løsrevet” som legger seg oppå verden (husk at mitt formål i praksis er å simulere VR). MR er ment å være noe som interagerer med verden, datagenererte objekter tilpasser seg hva man ser rundt seg. Med bluescreen-teknologi kunne live MR fungert svært fint for en del simulatorer.

Her kommer et eksempel på hvordan MR med bluescreen-teknologi kan være. Merk at dette er juks, det er ikke slik det fungerer live i dag, dette er bare laget med postprosessering. Men idéen er naturligvis at det som er naturlig å se av egen kropp, kontrollere man interagerer med, brusflasken for den saks skyld, er noe man ser. Resten er en datagenerert verden:

TL;DR:

Beklager, overskriften er en spøk, det kommer ingen én-setnings oppsummering. Derimot tar vi med en siste påstand til ettertanke: Man kan aldri vise noen hvordan VR oppleves, uten faktisk å sette på dem VR-brillene. Forhåpentligvis er dette opplagt etter alt du har lest til nå.