ATI Radeon pod povrchem (2) - technologie HyperZ
10.1.2001, Štěpán Mrázek, zpráva
Dnešní 3D aplikace vyžadují stále vyšší propustnost grafické sběrnice, neboť přenášejí neustále větší objemy dat. Přestože se neustále zvyšuje rychlost a tím i propustnost používaných typů pamětí, pak požadavky na jejich výkonnost neustále stoupají. Technologie HyperZ se snaží optimalizovat rendrovací proces, vyřadit zbytečné kroky a …
Dnešní 3D aplikace vyžadují stále vyšší propustnost grafické sběrnice, neboť přenášejí neustále větší objemy dat. Přestože se neustále zvyšuje rychlost a tím i propustnost používaných typů pamětí, pak požadavky na jejich výkonnost neustále stoupají. Technologie HyperZ se snaží optimalizovat rendrovací proces, vyřadit zbytečné kroky a zvýšit výkonnost během přenášení dat po sběrnici. Skládá se ze tří dále popsaných technik:
Hierarchical Z
Většina grafických procesorů nemá žádný způsob jak určit ještě před započetím rendrování, která část scény bude viditelná a která nikoliv. Musejí tedy kontrolovat vzdálenost každého pixelu a určit zda jej mají kreslit. V tomto postupu bude mnoho pixelů zapsaných do frame bufferu přepsáno novými pixely, které jsou blíže k divákovi. Název tohoto přepisu ve frame bufferu je anglicky označen jako “overdraw”. Počet výskytů tohoto jevu je nazýván jako hloubka složitosti (depth complexity). Je li jeho hodnota například 3, pak celkový počet rendrovaných pixelů je třikrát vyšší než počet viditelných pixelů.
Je evidentní, že toto značně snižuje výkonnost rendrovacího procesu. Hloubka složitosti se odvíjí od složitosti scény, nejběžnější jsou hodnoty 2 až 3. Funkce Hierarchical Z zkoumá data scény, ještě před započetím vlastního rendrování a určuje, která část scény bude viditelná - neviditelné části scény jsou pak vyřazeny z rendrovacího procesu.
Z Compression
Komprese dat je běžně užívána tam, kde je nutné přenášet velké množství dat přes datovou sběrnici s omezenou šířkou pásma. Typickým příkladem takovéto situace je Z-buffer, zde během čtení a zápisu dochází k přesouvání velkého množství dat. Technologie HyperZ používá bezztrátový kompresní algoritmus, který redukuje množství přenášených dat. Jak komprese tak i dekomprese probíhá real-time a samozřejmě přispívá ke zvýšení výkonu.
Fast Z Clear
Jestliže je obraz 3D scény vykreslený, pak musí být data ze Z-bufferu vymazána, ještě před přijetím dat dalšího obrazu. Konvenční grafické procesory toto provádějí zápisem hodnoty nula do každého pole paměťové matice. Tento postup se počítá jako zápis do Z-bufferu a proto vyžaduje přenosovou kapacitu nad tu, která je potřeba pro rendrování obrazu. HyperZ umožní velice rychlé vyčištění Z-bufferu (přibližně 64x rychleji než konvenční architektura) aniž by do něj musel cokoliv zapisovat. Výsledkem je redukce nároků na přenosovou kapacitu datové sběrnice.
Porovnání teoretického výkonu s a bez technologie HyperZ
Zdroj: ATI Technologies
Hierarchical Z
Většina grafických procesorů nemá žádný způsob jak určit ještě před započetím rendrování, která část scény bude viditelná a která nikoliv. Musejí tedy kontrolovat vzdálenost každého pixelu a určit zda jej mají kreslit. V tomto postupu bude mnoho pixelů zapsaných do frame bufferu přepsáno novými pixely, které jsou blíže k divákovi. Název tohoto přepisu ve frame bufferu je anglicky označen jako “overdraw”. Počet výskytů tohoto jevu je nazýván jako hloubka složitosti (depth complexity). Je li jeho hodnota například 3, pak celkový počet rendrovaných pixelů je třikrát vyšší než počet viditelných pixelů.
Je evidentní, že toto značně snižuje výkonnost rendrovacího procesu. Hloubka složitosti se odvíjí od složitosti scény, nejběžnější jsou hodnoty 2 až 3. Funkce Hierarchical Z zkoumá data scény, ještě před započetím vlastního rendrování a určuje, která část scény bude viditelná - neviditelné části scény jsou pak vyřazeny z rendrovacího procesu.
Z Compression
Komprese dat je běžně užívána tam, kde je nutné přenášet velké množství dat přes datovou sběrnici s omezenou šířkou pásma. Typickým příkladem takovéto situace je Z-buffer, zde během čtení a zápisu dochází k přesouvání velkého množství dat. Technologie HyperZ používá bezztrátový kompresní algoritmus, který redukuje množství přenášených dat. Jak komprese tak i dekomprese probíhá real-time a samozřejmě přispívá ke zvýšení výkonu.
Fast Z Clear
Jestliže je obraz 3D scény vykreslený, pak musí být data ze Z-bufferu vymazána, ještě před přijetím dat dalšího obrazu. Konvenční grafické procesory toto provádějí zápisem hodnoty nula do každého pole paměťové matice. Tento postup se počítá jako zápis do Z-bufferu a proto vyžaduje přenosovou kapacitu nad tu, která je potřeba pro rendrování obrazu. HyperZ umožní velice rychlé vyčištění Z-bufferu (přibližně 64x rychleji než konvenční architektura) aniž by do něj musel cokoliv zapisovat. Výsledkem je redukce nároků na přenosovou kapacitu datové sběrnice.
Porovnání teoretického výkonu s a bez technologie HyperZ
Typ paměti a její rychlost | Maximum Fill Rate | Maximum Fill Rate s HyperZ |
166 MHz SDR | 221 | 266 |
166 MHz DDR | 443 | 531 |
183 MHz DDR | 488 | 586 |
200 MHz DDR | 533 | 640 |
Tab. 1 - Typická 3D hra, kdy “depth complexity” nabývá hodnoty 3
Zdroj: ATI Technologies