Co je to Transform & Lighting

Letošní podzim je ve znamení nástupu grafických karet s novou generací grafických čipsetů – NVIDIA GeForce 256 a S3 Savage2000. Oba tyto akcelerátory budou vybaveny enginem pro zpracování funkcí souhrnně nazývaných Transform & Lighting. O co se vlastně jedná?

Transform & Lighting (transformace a osvětlování, zkráceně T&L) je množina náročných geometrických výpočtů, které je nutné provést při transformaci třírozměrné scény do dvourozměrné podoby (tak, aby se dala zobrazit na monitoru). Nápad vyrobit separátní jednoúčelový procesor, který by se staral pouze o tyto výpočty a značně tak ulehčoval hlavnímu procesoru, není vůbec nový. Karty s T&L tedy již nějakou dobu existují, ale díky své ceně (1000 – 9000 dolarů) se používají pouze k ve filmovém průmyslu a ke konstrukčním účelům. Teprve na konci letošního roku se dočkáme toho, že podobné jednotky budou (jako součásti běžných grafických karet) k dispozici široké veřejnosti, tedy i nám.

Geometrický engine na grafické kartě slouží, jak už bylo zmíněno, dvěma účelům: transformaci a rasterizaci 3D scény a generování efektu světelných zdrojů. Podívejme se, co se za těmito pojmy skrývá.

Transformace
Transformační engine převádí informace z 3D prostoru do 2D podoby zobrazitelné na monitoru. Jsou tři různé “prostory”, se kterými se musí transformační engine vypořádat: prostor 3D světa (world space), prostor obrazovky (screen space) a prostor oka (eye space), přičemž každý z nich používá jiný matematický systém a soustavu souřadnic.

Prostor světa – obsahuje všechny informace o 3D světě a v něm se vyskytujících objektech.

Prostor obrazovky – protože obrazovka počítače je dvojrozměrná, její prostor vzniká jako konverze trojrozměrného souřadného systému do dvojrozměrného.

Prostor oka – pohled kamery (tj. váš pohled) na určitou část scény; právě zde se provádí nasvětlování a všelijaké vylepšování obrazu.

Mezi výše uvedenými prostory probíhají během hry neustálé matematicky náročné konverze– bez zvláštní výpočetní jednotky by se o ně musel kompletně postarat hlavní procesor.

Osvětlování
Vývojář hry má k dispozici mnoho různých osvětlovacích technik, které může použít. Každá z nich má přitom specifický vzhled, který ji předurčuje pro nasazení v konkrétních typech situací.

Pro znázornění statického osvětlení jsou nejlepší světelné mapy, které se aplikují (“položí”) na textury osvětlených povrchů. Jedná se o výpočetně nenáročnou metodu, která je však nevhodná pro dynamické osvětlování, které se mění a pohybuje při změnách scény a/nebo úhlu pohledu. Generování dynamických světel je přirozeně nejrealističtějším způsobem osvětlení, ale stejně jako transformační funkce vyžaduje hodně “koňských sil”.

U počítačových her se setkáváme s například s těmito druhy osvětlení: rozptýlené (diffused), které se rozptyluje po objektu do všech směrů, zrcadlové (specular), které působí velmi přesně a realisticky, je však výpočetně nejnáročnější, protože se mění s úhlem pohledu pozorovatele, jeho vzdáleností a změnami působícími na samotný zdroj světla, směrové (directional), které svítí stejně jako Slunce na Zemi – paprsky světla jsou rovnoběžné a dopadají na povrch stejnoměrně, bodové (point), které svítí jako plamen svíčky – jeho světlo má tvar uniformní kulové plochy a vyzařuje do všech směrů, atd.

ZÁVĚR
Hardwarový geometrický engine je tedy nástrojem, který umožní vykonávání prakticky všech geometrických výpočtů na grafické kartě s malou nebo žádnou podporou ze strany CPU. Hlavní procesor takto bude muset počítat pouze pohyb objektů, fyzikální vztahy a úroveň podrobnosti scény (LOD).

Geometrické výpočty se z důvodů přesnosti provádějí v pohyblivé řádové čárce, proto v “neakcelerátorových” dobách záleželo u 3D her (Quake, Descent) především na výkonu numerického koprocesoru hlavní CPU – někteří z vás si možná vzpomenou, jak zoufalý byl výkon těchto her na procesorech Cyrix/IBM, jejichž jednotka pro numerické výpočty je proslulá svým nízkým výkonem (ve srovnání s procesory Intel).

Obohacení instrukčních sad nových procesorů o instrukce MMX, 3DNow! nebo nejnověji SSE mělo a má za účel urychlit právě zpracování úloh T&L, ale v rámci hlavního procesoru. Budoucnost však evidentně spočívá v separátních hardwarových geometrických jednotkách umístěných na grafické kartě, které uvolní procesor pro jiné úlohy. Limitujícím faktorem je mimo jiné šířka systémové sběrnice, po níž CPU musí předávat své výsledky dále; výsledky výpočtů prováděných lokálně na grafické kartě mohou jít již přímo na obrazovku – výhoda tohoto řešení je nasnadě.

A co podpora pro hardwarovou akceleraci T&L v DirectX a OpenGL? Situace je dobrá: obě tyto herní knihovny mají ve svých posledních verzích začleněny funkce, které umožňují předávat geometrické výpočty dedikovanému hardwaru. Směr byl tedy určen v hardwarové i softwarové oblasti, zbývá již jen čekat na karty s čipsety GeForce 256 a Savage2000 a samozřejmě herní tituly, které jejich pokročilých vlastností dokážou využít.

Diskuze (2) Další článek: Dungeon Keeper 2

Témata článku: , , , , , , , ,