LiquidVR: tekniken för virtuell verklighet på AMD-grafikprocessorer

LiquidVR

Virtuell verklighet är i sig ett medium som arbetar under sina egna regler på grund av dess speciella natur. Detta uppmanas GPU tillverkare att utveckla teknologier och standarder för att öka prestanda för sina grafikkort under virtuell verklighet, t.ex. AMDs LiquidVR-teknik.

LiquidVR har varit med oss ​​i flera år, men vi har inte pratat om vad den består av under hela den här tiden och eftersom AMD-grafikprocessorer ser återgivningen av scener baserat på virtual reality accelererad med allt som omger LiquidVR, förklarar vi snabbt vad det består av och hur det fungerar.

Vad är AMD LiquidVR?

AMD LiquidVR

Teknologierna som utgör LiquidVR har använts av AMD sedan 2015, så det är ingen ny teknik på marknaden, eftersom den har varit med oss ​​i några år. Dessutom tänktes det inte ens för DirectX 12 utan för DirectX 11, eftersom den tolfte versionen av MicrosoftAPI släpptes samma år. LiquidVR har dock varit oförändrad sedan dess.

LiquidVR är, som namnet antyder, en serie tekniker som är utformade för att påskynda återgivningen av virtual reality-scener genom AMD GPU: er, som består av fem grundläggande punkter:

  • Asynkron databehandling.
  • Multi-GPU-affinitet
  • Förmågan att minska latens för ingångsinmatning med virtual reality-enheten.
  • Avancerad datakopiering mellan CPU och GPU.
  • Minska latens på videoutdata

Dessa fyra principer har utvecklats i de olika AMD-grafikprocessorerna sedan dess och är grunden för framtida design, men de utvecklades för sin tid för att påskynda Virtual Reality.

Rörelse till fotonfördröjning

Rörelse till foton

I virtuell verklighet finns det regeln att tiden från det att vi gör en rörelse tills vi ser den på vår tittares skärm måste vara mindre än 20 ms. Ett högre antal genererar otro i vår hjärna om att "vara" på platsen. Å andra sidan, när siffran på mindre än 20 ms uppnås, genereras det som kallas närvaro.

Med detta talar vi inte om en bildtid på mindre än 20 ms, men i mindre än den typen måste hela processen genomföras, från och med när vi trycker på knappen eller gör en rörelse tills vi ser resultatet av den på skärm. Det tvingade det att vara nödvändigt att optimera inte bara GPU: s renderingshastighet utan också allt som involverar processen att skapa den bild som användaren ser.

Asynkron databehandling

DX11 vs DX12

Asynkron databehandling är redan inbyggd i DirectX 12 och Vulkan, så det är inte längre en separat funktion. Vad består det av? Tja, i det faktum att före dessa två API: er på PC behandlades alla skärm- och beräkningslistor som en vanlig lista i DirectX 11.

Vissa grafikprocessorer har flera kommandoprocessorer bortsett från de viktigaste som tar hand om datoruppgifter, varav många fungerar asynkront när de ritar scenen. Det vill säga att de inte är beroende av att scenen återges när som helst och kan köras när som helst.

Multi-GPU-affinitet i LiquidVR

LiquidVR

Idén när man gör en 3D-scen i realtid görs med en enda kamera, det motsvarar att se världen ur en cyklops synvinkel. Men för att göra scenen för virtuell verklighet görs det med hjälp av två synvinklar, det vill säga två kameror där var och en motsvarar ett annat öga.

Multi-GPU-affinitet i LiquidVR är inget annat än att göra en scen med en GPU för synen på var och en av ögonen, var och en ur dess synvinkel och parallellt. För detta är det nödvändigt för CPU att skapa två skärmlistor, en för varje öga och som processorn bearbetar parallellt.

Eftersom Virtual Reality-fallet är anslutet till den första skärmen, kopierar den andra GPU: n sin slutliga bildbuffert till den första GPU. Glöm inte att LCD-panelerna på HMD-enheter eller virtual reality-headset vanligtvis finns i en enda LCD-panel, där bilden av det vänstra ögat återges i vänstra halvan av skärmen och det högra ögat i mitten. rätt.

Uppskattning av LiquidVR-rörelse

Fördröjningen mellan spelarens huvudrörelse och den tid då bilden genereras kan orsaka en fördröjning som kan orsaka yrsel hos spelaren, eftersom rörelsen som visas i sökaren inte motsvarar den rörelse som spelaren gör. spelaren genom att flytta huvudet, allt orsakat av den fördröjning det tar för CPU: n att generera skärmlistan och skicka den till GPU: n.

Uppskattningen av rörelse i LiquidVR förutsäger därför vilken riktning och i vilken hastighet användaren kommer att flytta huvudet. Målet är ingen annan än att minska latens vid beräkning av huvudets position och andra element som spåras för att minska fördröjningen och om den kan avbrytas. Anledningen till att vi behöver detta är att alla objekt i ramen behöver en referenspunkt med avseende på vilka alla rör sig, nämnda referenspunkt är alltid kameran som i virtuell verklighet alltid beror på huvudets position och i vissa fall även av ögonen.

I virtuell verklighet är det extremt nödvändigt att användarens rörelse synkroniseras med den virtuella världens rörelse, varje rörelse som han eller hon måste samordnas med resten av den virtuella världen. Eftersom hela världen inte är trovärdig för dem som upplever det, är också närvaroprocessen trasig, vilket är nyckeln till virtuell verklighet.