Bekerült az Ogre 2.1-be az OpenGL AZDO mellékága

Amellett, hogy gőzerővel készül az újraírt OpenGL API, nem mehetünk el szó nélkül az úgynevezett OpenGL AZDO irány létezése mellett, amelyet korábban az AMD, az Intel és az NVIDIA is éltetett, de a játékfejlesztők annyira nem voltak oda az ötletért, így inkább a többi modern API felé kacsintgatnak.

Az OpenGL AZDO mellékága azonban nem lett teljes kudarc, mivel a nyílt forráskódú Ogre videojáték-motor 2.1-es verziójába már bekerült a támogatás, igaz még csak nagyon kezdetleges formában, tehát ez bőven javulni fog a jövőben. A fejlesztésért Matias N. Goldberg felelt és az aktuális AZDO leképző nem kóstol bele az OpenGL 4-be, így megmarad az elég jónak mondható 3-as API verziónál. Ettől függetlenül a többletterhelés csökkentése működik.

Az alapvető újítás az Ogre 2.1-ben az anyagrendszer megváltozása, amire a gyorsabb működés érdekében volt szükség. Az új HLMS (High Level Material System) rendszer bele van integrálva a motorba, tehát nem csak egy kiegészítés, továbbá a régi anyagrendszer nagyon lassú, így mindenképp az új elgondolást érdemes használni. Ezen belül is a HLMS-nek van mobil és asztali piacra tervezett konfigurációja is.

Ugyanakkor az Ogre 2.1-be még nincs minden elem portolva, így a régi kód is megmaradt a régi funkcionalitással. A motor mostantól v1 vagy v2 interfész mellett működhet, amely meghatározza a betölthető objektumok formátumát. A v1 nagyrészt a kompatibilitást szolgálja, így az eddig elérhető funkciók élnek alatta. A léképző szempontjából a v1 interfésznek két módja lesz. A legacy opció a lehető legközelebb áll az első generációs Ogre motor működéséhez, de a HLMS-t csak mobil konfigurációval lehet benne használni, emellett ez az elérhető leglassabb mód. A v1 interfész viszont rendelkezik egy gyorsabb fast opcióval, amely megköveteli a HLMS asztali konfigurációjának használatát, de bizonyos régi funkciók nem lesznek elérhetők. A v2-es fast mód mind az objektumok és a HLMS szintén a legmodernebb konfigurációt követeli, továbbá a többletterhelés nagyon alacsony, ami által a többszálú optimalizálás lehetősége nagyon kedvező.

Az AZDO mellékág szempontjából fontos kihangsúlyozni, hogy kezdetleges kódról van szó, így jelenleg még nincs minden szempontból optimalizálva. Az AZDO támogatásához olyan OpenGL meghajtó szükséges, amely legalább OpenGL 3.3-at kezel, illetve elérhető benne a GL_ARB_base_instance kiterjesztés. Ez azért van kiemelve, mert a többi szükséges kiterjesztést a gyártók általánosan támogatják, de az említett kiterjesztés például Mac OS X alatt nem érhető el, vagyis az Ogre 2.1 OpenGL AZDO leképzője működésképtelen lesz az Apple operációs rendszerén.

A teljesítmény szempontjából már a v1-es interfész fast módja is gyorsabb a DirectX 9 leképzőnél, ami elég nagy szó, mivel az Ogre mindig is a DirectX 9 alatt működött a legjobban. A processzor terhelése is nagyon alacsony marad, vagyis a teljesítménylimitet a grafikus vezérlő szolgáltatja. És ne feledjük, hogy van egy ennél is gyorsabb mód.

A hardverek oldalán még nem tökéletes a támogatás, de ez nagyrészt a kód kiforratlanságára vezethető vissza. A fejlesztés hardveres alapját adó AMD Radeon HD 7770-en az Ogre 2.1 hibátlan Windows operációs rendszer alatt, míg Linux mellett van egy kis probléma a meghajtóval, de ezt javítva várhatóan ott sem lesz gond. Az NVIDA kapcsán a vezető fejlesztő nem tudott információval szolgálni, de elmondása szerint a felhasználók visszajelzései kedvezők. Az Intelen a motor még nincs tesztelve, de később erre is sor kerül majd.

A gyártókra levetített teljesítmény egyelőre nehezen megítélhető, mivel maga az OpenGL AZDO mellékágának működése miatt nagyon sok múlik az alkalmazásba épített optimalizáláson. Mivel az Ogre 2.1 az aktuális, mondhatni még kezdetleges formájában csak az AMD GCN architektúrájára tartalmaz komolyabb optimalizálást, az egyes hardverek összehasonlítását érdemes elnapolni. Matias N. Goldberg szerint a munkáját nagyban segítené, ha mindegyik architektúra részletes és jól felépített dokumentációt kapna, mivel úgy egyszerűen és gyorsan meg tudná nézni, miképp kell azokra optimális kódot írni.

Előzmények

Hirdetés