Hirdetés

Egyszerűsített párhuzamosítás az új Umbra middleware-ben

Talán kevesen hallottak a finn Umbra Software nevű cégről, mely lassan 13 éve létezik és az Umbra middleware-rel vált ismerté. Utóbbi egy alapvető optimalizálásokat biztosító keretrendszer a leképzési feladatok egyszerűsítésére, elsősorban az occlusion culling technika megfelelő alkalmazására koncentrálva. Az első és a második verzió persze nem volt tökéletes, ami nem azt jelenti, hogy használhatatlannak számított, de az adott videojáték-motorba való beépítés után még számos extra munkája volt a fejlesztőknek, ami nem kedvezett a rendszer eladásának, hiszen saját occlusion culling is írható, illetve az egyes motorok is rendelkeznek ilyen kivágási rendszerrel (ezek tudása és minősége persze változó).

Az Umbra harmadik nagy frissítése azonban igazi áttörésnek számított, mivel végre elérte azt a tudásszintet, amivel erre a feladatra szánt middleware-nek rendelkeznie kell. Többek között rendkívül hatékonyan végezte a kamera szemszögéből nem látható objektumok kivágását, akár dinamikus objektumokkal is. Mindezt komplex jelenetekkel is kivitelezte későbbi grafikai hibák nélkül, illetve alacsony memóriaigény mellett. Ráadásul az Umbra 3 egyszerűen beépíthető minden motorba, fut bármelyik elterjedt platformon, ideértve a régebbi konzolokat, a PC-ket és az ultramobil eszközöket, továbbá belsőleg teljesen automatizált, az Umbra API-n keresztül könnyen paraméterezhető rendszerről van szó.

Ennek megfelelően az Umbra 3 sikeresnek számított, hiszen az egyre komplexebb jelenetek mellett igen nagy igény van egy jól működő occlusion culling rendszerre. Többek között olyan címek használják a technikát, mint a Dragon Age és az Alan Wake sorozat, illetve a Mass Effect második és harmadik része, vagy éppen a Call of Duty: Ghosts, de ezek mellett az érkezők játékok között feltűnik a The Witcher 3: Wild Hunt és a Destiny. De nem is ez a lényeg, hiszen az elmúlt hónapokban számos új fejlesztőstúdió kifejezte igényét az Umbra 3.3 iránt.

Az új frissítés elsősorban azért fontos, mert a kivágáshoz szükséges mélységinformációk megszerzéséhez az adott képkockát egy rendkívül egyszerű szoftveres leképzővel ki kell számolni. Ez elvi szinten nem számít nagy munkának, hiszen csak leegyszerűsített alakzatokról van szó, de ezt korábban nehezen lehetett párhuzamosítani, így eddig egyetlen szálon futott. Az új Umbra azonban jelentősen egyszerűsíti a feladat több szálra bontását. Ezzel le sem tagadhatják, hogy a nyolcmagos processzorrésszel rendelkező Xbox One és PlayStation 4 konzolok APU-it célozzák meg. A Killzone: Shadow Fall esetében ez a megoldás már élesben is bemutatkozott, és látszatra nagyon jó munkát végez.

Persze ebből az újításból a PC is profitál, hiszen ezen a platformon már elterjedtek a többmagos processzorok, illetve nyilván az ultramobil termékek körében is hasznos újításnak számít, ahogy általánossá válnak a sokmagos ARM-os rendszerchipek. Szintén megjegyzendő, hogy az Xbox One és a PlayStation 4 számára az Umbra 3.3 csak egy alternatíva, mivel ez a két rendszer olyan grafikus API-t használ, amin keresztül megoldható, hogy a grafikus vezérlő elvégezze az occlusion culling technikához szükséges előzetes leképzés, méghozzá úgy, hogy ennek eredményét nem a központi processzornak, hanem saját magának adja át, és így az eredmény elbírálásáról is a grafikus vezérlő gondoskodik. Ez a módszer nagyságrendekkel gyorsabb annál, mint amit az Umbra 3.3 kínál, de nyilván ehhez meg kell írni a megfelelő motort, így ha erre nincs idő, vagy szimplán nem kell minden eddiginél extrémebb komplexitású jelenetekkel dolgozni, akkor a legfrissebb Umbra is bevethető.

Előzmények

Hirdetés