Testování grafického výkonu pomocí VRML Změřte si svoji grafiku Grafický výkon počítače je ovlivňován mnoha jeho složkami, počínaje procesorem, sběrnicí, pamětí a grafickou kartou a konče operačním systémem, 3D zobrazovací knihovnou (rendering subsystem) a vyladěním aplikačních programů. V tomto článku představujeme možnost ověření 3D grafického výkonu z globálního, uživatelského hlediska. Balík testů VRMLBenchmark vyvinutých na FEL ČVUT Praha (hlavním programárorem byl student Jaroslav Křivánek) měří výkon při zpracování třírozměrných scén popsaných jazykem VRML. Na rozdíl od jednoúčelových testů, jakými jsou například SPECint pro rychlost procesoru či SPECglperf pro knihovnu OpenGL, měří VRMLBenchmark grafický výkon z různých hledisek, a dovoluje tak porovnat celkové nastavení počítače pro potřeby zobrazování třírozměrných scén a objektů. VRMLBenchmark Jazyk VRML (Virtual Reality Modeling Language) je používán pro popis virtuálních světů – třírozměrných objektů a prostorových scén. Tyto umělé světy jsou typicky dostupné z internetu a lze je prohlížet pomocí běžných webových prohlížečů doplněných modulem (plug-in) pro prezentaci VRML obsahu. Podobně jako existuje více operačních systémů a více webových prohlížečů (MS IE, Netscape), můžeme se také setkat s různými moduly pro prohlížení VRML modelů. Bez ohledu na konkrétní hardwarovou a softwarovou konfiguraci je při zobrazování VRML světů vždy cílem co nejvyšší rychlost generování obrázků. Aby se systém mohl právem nazývat systémem pro virtuální realitu, je třeba docílit rychlosti alespoň 25 fps (frames per second – snímků za sekundu). Při této a vyšší hodnotě je rychlost dostatečná pro vyvolání dojmu plynulého pohybu. Když počet snímků za sekundu klesá, pohyb se stává trhanějším. Právě náročnost zobrazování virtuálních scén vedla studenty na Katedře počítačů FEL ČVUT v Praze k vytvoření sady benchmarků (benchmark – výkonnostní test, pro obtížný překlad psáno dále anglicky) využívajících VRML. Vzhledem k tomu, že se na zobrazování podílejí téměř všechny HW a SW součásti počítače, mají tyto benchmarky schopnost vypovědět o grafické kvalitě počítače jako celku. O co tedy jde? Uživatel dostane sadu webových stránek, které obsahují základní testy a applety měřící průměrnou rychlost zobrazování ve fps. Tato hodnota je klíčovou pro určení výkonu počítače. Za předpokladu, že prohlížeče VRML pracují správně a nedopouštějí se chyb či zjednodušení, například při zpracování textur nebo světel, lze snadno a přímo říci, že čím vyšší je hodnota fps, tím lepší jsou schopnosti počítače z hlediska 3D grafiky. Uživatel tak má jednak možnost vyzkoušet si, zdali jeho počítač zvládne "procházku virtuálním světem" dostatečně plynule, jednak získá hodnoty fps vhodné ke srovnávání s jinými systémy. Co vše se testuje Samotné testy jsou podle charakteru rozděleny do několika kategorií. Můžeme říci, že každý druh testuje různé složky výpočetního systému. Například testy objektů složených z mnoha polygonů jsou náročné na výpočty realizované procesorem, resp. grafickou kartou, je-li schopna provádět transformace ve 3D, zatímco testy textur zatíží texturovací paměť grafické karty apod. Balík VRMLBenchmark obsahuje následující skupiny testů: 1. Polygony V těchto testech se měří rychlost zobrazování rotujícího objektu složeného z mnoha plošek. Model je zobrazován nejprve pomocí tisíce trojúhelníků a počet plošek pak dále stoupá až na padesát tisíc. Toto maximum je mimochodem vhodné i pro měření paměťových nároků. V testech není použit žádný zvláštní materiál tělesa ani osvětlení. Závislost rychlosti zobrazování na počtu polygonů je zřejmá. 2. Materiály a mlha Materiál tělesa ve VRML má mnoho parametrů (barva odraženého světla, vyzařovaná barva, průhlednost atd.). Pro každý z těchto parametrů byl vytvořen test na stejném modelu (složeném z deseti tisíc polygonů). Dále můžeme použít všechny parametry najednou a také v kombinaci s osmi směrovými zdroji světla. V posledním testu je zobrazována scéna s několika objekty v mlze v různých vzdálenostech od uživatele. Tyto testy prověřují především rychlost grafické karty a kvalitu zobrazovacího podsystému, například OpenGL či Direct3D. 3. Světelné zdroje Zde se testují scény se směrovými a bodovými světly, stejně jako s náročnějšími světelnými kužely. Každý objekt je osvětlen čtyřmi, osmi a dvanácti světelnými zdroji. Používáte-li OpenGL, může se stát, že dvanáct světelných zdrojů nebude správně zobrazeno, neboť některé implementace OpenGL mají nastaven horní limit počtu světel na osm. Uživateli je proto pro porovnání poskytnut obrázek ukazující očekávané výsledky. 4. Textury Tato sada testů se zaměřuje na velikost a počet textur. Jedna textura v různých rozlišeních je nanášena na složitý objekt složený z mnoha tisíc plošek. Rozměr čtvercové textury se mění z jednoho bodu až na 4096 pixelů. Poslední test je paměťově velmi náročný, neboť jen data obrázku textury zabírají po rozbalení v paměti téměř 50 MB. Další scéna pro testování textur se skládá z 1024 drobných objektů. Na ně je pak nanášena jedna textura, resp. 512 a 1024 různých textur. Přestože je pro každou z textur použit poměrně malý obrázek (128 x 128 pixelů), při velkém počtu textur je paměťová náročnost opět výrazná. Poslední scéna je malou specialitkou – každý z jejích 1024 objektů je definován zvlášť a ne jako kopie jediného vzoru. Některé VRML prohlížeče dokáží rozpoznat, že všechny objekty jsou stejné, a použijí proto rozumně malé množství paměti. Jiné prohlížeče naopak zaplní paměť tisícem zcela stejných textur, což výrazně zpomalí zobrazování. Tato sada testů tedy měří jak kvalitu implementace prohlížečů VRML, tak schopnosti grafické karty při zpracování textur. 5. Zpracování událostí Poslední dva testy měří to, jak zpracovávání zasílání událostí ve VRML snižuje rychlost zobrazování. Na jazyk VRML totiž lze nahlížet také jako na simulační jazyk, a je tedy vhodné měřit vnitřní časové nároky (režii) při vyhodnocování událostí. Testovací scény obsahují časovač, který zasílá události do 2000, resp. 4000 jiných uzlů. Výsledky Sada benchmarků je mimo jiné zajímavá i tím, že částečně dovoluje uživateli doladit jeho počítač po stránce 3D grafického výkonu. Zatímco konfiguraci svého hardwaru většina uživatelů jen těžko okamžitě změní, některé softwarové součásti zobrazovacího řetězce lze konfigurovat. Příkladem je volba prohlížeče VRML. Některé prohlížeče jsou velmi rychlé, ovšem jen za předpokladu, že mají dostatek operační paměti. Jiné jsou paměťově úspornější při rozumném zachování celkového výkonu. Obzvlášť zajímavé je srovnání knihoven OpenGL a Direct3D. V současné době se objevují jejich implementace jak v čistě softwarové podobě, tak v hardwaru grafické karty. Významný vliv na efektivitu jejich použití má přitom i správný ovladač (driver) pro daný operační systém. Pokud VRML prohlížeč umí přepínat mezi knihovnami OpenGL a D3D, lze pomocí VRMLBenchmarku zjistit, která z knihoven si lépe "rozumí" s danou grafickou kartou a operačním systémem. Celá sada benchmarků byla zatím vyzkoušena jen na omezeném počtu konfigurací. Šlo o prostředí MS Windows s prohlížeči Netscape a MS IE. Bylo použito různých prohlížečů VRML (blaxxun Contact, Cortona, CosmoPlayer, WorldView) a nastavení na OpenGL a D3D, ať již se softwarovou či hardwarovou implementací. Výsledky ukazují, že jednotlivé konfigurace se poměrně výrazně liší a že na počítači s daným procesorem a danou velikostí paměti RAM lze docílit až dvojnásobného zvýšení výkonu nastavením vhodné kombinace všech SW součástí. Závěrem Sada testů VRMLBenchmark představuje nový a zajímavý způsob testování grafického výkonu počítačů ve 3D. Benchmarky vyžadují pouze webový prohlížeč s VRML modulem (zdarma získatelným podle výběru uživatele a pro různé platformy) a výsledná čísla, tj. hodnoty fps, jsou srozumitelná a snadno srovnatelná. Časopis Chip se proto rozhodl používat tyto benchmarky jako další z kritérií pro srovnávací testy výkonu počítačů. VRMLBenchmark je volně dostupný na internetu (www.cgg.cvut.cz/VRML/Benchmarks/). Velikost celé sady včetně všech textur je 8 MB. V současné době probíhá testování na různých platformách a HW a SW konfiguracích. Studenti Katedry počítačů FEL ČVUT připravují i rozhraní, které dovolí porovnávat výsledky z různých měření formou interaktivního prostorového grafu, pochopitelně ve VRML. Uživatelé budou také moci zasílat výsledky svých testů do připravované databáze benchmarků. Dosud nepříliš bohatá stránka s výsledky měření tak brzy získá nový atraktivní obsah. Jiří Žára CHYBA! NEZNÁMÝ ARGUMENT PŘEPÍNAČE./3