A virtuális valóságnál a headsetekhez kínált fejlesztő- és futtatási környezetek mellett a GPU-kat fejlesztő cégek is kínálnak saját, amolyan kiegészítőcsomagokat, amelyek az eredeti rendszerek képességeit javítják fel. Ez nyilván logikus konstrukció, mivel az Oculus és a Valve ugyan optimalizál az egyes hardverekre, de biztosan nem ismerik azokat annyira jól, mint a gyártók. A jobb élmény elérése érdekében az AMD a LiquidVR, míg az NVIDIA a VRWorks csomagot kínálja. Utóbbi talán ismeretlen lehet, mivel az NVIDIA kétszer is átnevezte a saját konstrukcióját, de a VRWorks ugyanaz, mint a VR Direct, illetve későbbi, szintén elkaszált néven GameWorks VR.
Hirdetés
Az AMD LiquidVR és az NVIDIA VRWorks képességeit egy táblázatban lehet a legjobban részletezni:
Kiegészítő fejlesztőkörnyezet | AMD LiquidVR |
NVIDIA VRWorks |
---|---|---|
(aszinkron) timewarp preempció | durvaszemcsés/finomszemcsés |
rajzolási szintű/durvaszemcsés |
Két GPU támogatása | van (Affinity Multi-GPU) |
van (VR SLI) |
Direkt front buffer leképezés | van | van |
Csökkentett minőségű leképezés | van (MultiRes Shading) |
van (Multi-Res Shading) |
Legfrissebb pozíció linkelése | van (Latest Data Latch) | nincs |
Hangfeldolgozás gyorsítása |
TrueAudio Next |
VRWorks Audio |
Szemkövetés | van | nincs |
Szimultán multiprojekció |
nincs |
van |
Alaptechnológia | natív VR API (Mantle) | szervizkönyvtár (NVAPI) |
A két csomag koncepciója ugyanaz, vagyis az Oculus és az OpenVR SDK mellett további optimalizálási lehetőségeket kínáljon a fejlesztőknek a jobb eredmény érdekében. Emiatt a timewarp és az aszinkron timewarp preempció hatékonyabb, bár az AMD és az NVIDIA bizonyos hardvereknél eltérő elvet alkalmaz. Ezen belül is az AMD-nek a GCN és GCN2 dizájnjai durvaszemcsés, míg a GCN3-as és GCN4-es megoldások finomszemcsés preempciót használnak, míg az NVIDIA a Pascal dizájnban durvaszemcsésre váltott, de korábbi GeForce-okban rajzolási szintű a preempciós modell. A koncepciók között az alapvető különbség, hogy a hardver mikor képes kontextust váltani. Az NVIDIA Kepler és Maxwell architektúrára épülő GeForce megoldásai minden befejezett rajzolási feladat végén, vagyis nagyon kell arra ügyelni, hogy a timewarp elé ne kerüljön egy hosszú ideig tartó rajzolási folyamat. Az AMD hardverei közül a GCN és GCN2 architektúrára épülő Radeonok a wavefront lefuttatásának végén, míg a GCN3-as és GCN4-es opciók bármikor képesek kontextusváltásra. Az NVIDIA Pascal esetében a szemcsézettség ugyan finomabb a GCN-hez és a GCN2-höz viszonyítva, így nem kell megvárni az adott warp lefutását, de bármikor nem képes az architektúra a váltásra, így valamilyen szinten durvaszemcsésnek tekinthető a rendszer. A finomabb szemcsézettség dióhéjban azt jelenti, hogy a jobb hardvereken a fejlesztőknek nem igazán kell a hosszú ideig tartó rajzolási feladatokra figyelni, mert a robusztus ütemezés magától is hatékonyan megoldja majd a timewarp kiszámítását.
A két GPU-s, illetve a direkt front buffer leképezés szempontjából az AMD és az NVIDIA koncepciói között nincs radikális eltérés, gyakorlatilag a konfigurációk ugyanazt fogják csinálni. Van azonban két olyan funkció, amelyek úgymond exkluzívnak tekinthetők.
A VRWorks és a LiquidVR is kínál egy csökkentett minőségű leképezési módot Multi-Res Shading vagy Variable Rate Shading, de újabban inkább MultiRes Shading néven. Ez az NVIDIA esetében csak a második generációs Maxwell, illetve az új Pascal architektúrára épülő GeForce-okon érhető el, míg az AMD-nél megoldható a támogatás az összes eddig megjelent GCN-en. Mindkét konstrukció alapvetően azt csinálja, hogy a sztereó 3D-s képkockának csak a középre néző szem fókuszpontjában lévő részét számolja ki teljes felbontással, míg a képkocka szélén felezett vagy negyedelt felbontással történik a számítás. Nyilván ez ront a megjelenítés minőségén, de cserébe gyorsabban lesz kész az adott sztereó 3D-s képkocka.
Az AMD LiquidVR a MultiRes Shading mellé kínál még szemkövetésre vonatkozó támogatást is, így a nézőpozíciók helyzete a VRWorks csomaggal ellentétben nem szükségszerűen kötött, hanem dinamikusan változhat aszerint, hogy a szem a lencse melyik részét nézi. Ezt is támogatja akármelyik GCN architektúrára épülő Radeon.
Az NVIDIA VRWorks a Multi-Res Shading mellé felkínál szimultán multiprojekciót is, amivel megoldható a nézőpozíciók hatékonyabb elhelyezése, vagyis ezeknek nem feltétlenül kell egy síkban lenniük. Persze az egy szemnek szánt nézőpozícióra levetítve a lencse alakja nem jelent olyan potenciális képtorzulást, hogy azt ne lehetne egy jóval egyszerűbb utófeldolgozással kezelni, ráadásul a lencse alakját tekintve sem szögletes, hanem ívként jellemezhető, de nüansznyi különbségeket lehet korrigálni vele. Ezt a rendszert a Pascal architektúrára épülő GeForce-ok támogatják.
Az AMD a LiquidVR-hez egy Latest Data Latch nevű extra funkciót kínál, amely a fejpozíció kinyerésén javít. Az Oculus SDK szabványos API-kat használ, és ezek nem engedik meg, hogy a jelenetszámításnál használt kamerapozíció megváltozzon a jelenethez tartozó képkocka esetében. Az AMD emiatt először a Mantle API-nak adja át a kamerapozíciót, és a szabványos API-k azt fogják hinni, hogy az a jelenethez használt pozíció volt, így elfogadják azt. Ennek a koncepciónak az előnye, hogy az úgynevezett "motion-to-photon" késleltetés durván a felére csökkenthető, mivel a képkocka számításához felhasznált fejpozíció nem a jelenet kalkulációjának megkezdésekor született meg, hanem pont a jelenetszámítás befejezésekor. Ezzel gyakorlatilag a rendszer mindig a lehető legfrissebb fejpozícióval számol. Ez a funkció az AMD számára lényeges, mert a cég szerint az Oculus rosszul hiszi, hogy a picivel kevesebb mint 20 ezredmásodperces késleltetés elfogadható – a vállalatnál úgy gondolják, hogy ennek inkább 10-12 ezredmásodperc alatt kell lennie.
Végül a hangfeldolgozás gyorsítására az AMD a TrueAuido Next, míg az NVIDIA a VRWorks Audio koncepciót kínálja fel, amelyeket sajnos csak a legújabb hardvereken lehet elérni, vagyis az AMD GCN4, illetve az NVIDIA Pascal architektúrán. A működési modell egyébként mindkét konstrukcióban ugyanaz, vagyis megoldja a hangok fizikailag korrekt leképzését, illetve a térhangzás számítását.