Hlavní stránka Hardware Grafické karty Nová generace nVidia Quadro s technologií Fermi
Nová generace nVidia Quadro s technologií Fermi
autor: Jan Buriánek , publikováno 12.8.2010
Nová generace nVidia Quadro s technologií Fermi

Na začátku akcelerované grafiky byl pevně zakotvený algoritmus stínování ploch, v roce 2000 spatřila světlo světa nová generace karet využívající obecné stínovací algoritmy, nyní v roce 2010 vstupujeme do nové epochy tzv. výpočetní počítačové grafiky. Co že to v praxi znamená nejen pro herní, ale zejména filmový a designérský průmysl?


Jestliže je pro nás dnes prakticky samozřejmostí, že se filmy používají foto-realistické počítačové animace, pak v real-time 3D počítačové grafice je samozřejmostí co nejlepší grafický výstup, co nejlepší stínování a výstup „bez cukání“ (15 až 24fps). Programátoři počítačových her se dnes mohou spolehnout na to, že GPU stínování jim umožní napodobovat vržené stíny, zrcadlení, pokročilé metody osvětlení a stínování, prostě vše co potřebují pro co nejvěrnější vykreslení scény. Přesto některé součásti zobrazení v real-time 3D grafice stále pokulhávají. Například skleněné objekty (tzv. caustics efekty), plošná světla, vlasy, chlupy, šaty, to vše vypadá ve většině případů „nereálně“ a uvedené triky jsou nějakým způsobem významně zjednodušeny. Je jasné proč to tak je, tyto výpočty vyžadují obecný systém algoritmizace, který se provádí spíše na CPU než GPU. Programátor navíc nemůže snadno „šáhnout“ pro nějakou tu pomocnou standardní funkci, která by takto komplexní věc implementovala pro obecné GPU.

Nová generace nVidia Quadro s technologií Fermi

Nová epocha grafiky však uvedená omezení začíná smazávat. Díky nové Fermi technologii a nejnovějších „CUDA enabled“ grafických akcelerátorů se situace značně mění. Obecné výpočty potřebné pro implementaci řady pokročilých grafických algoritmů stínování jsou nyní „mapovány“ na CUDA procesory. Grafický akcelerátor se tak stává plnohodnotným výpočetním koprocesorem ke stávajícímu CPU a poskytuje v plné míře svůj paralelní výkon a to nejen pro obecné výpočty, ale právě i pro grafické výpočty „ne GPU charakteru“.

Co to přesně znamená? První takový příklad z výpočetní počítačové grafiky se již nějakou dobu používá. Jedná se třeba o rozhraní PhysX (http://www.nvidia.com/physx). Najednou programátor real-time aplikace mohl objektům dát jednoduše fyzikální vlastnosti a nechat CUDA procesory vypočítat fyziku přímo na GPU akcelerátoru. Výsledkem jsou dnes „fyzikálně korektní“ chování objektů v počítačových hrách a nově i v řadě průmyslových aplikacích. PhysX ale není jenom pro hry, pomáhá i vědeckým výpočtům a simulacím vyžadujícím detekce kolizí (astronomie, chemie).

Nová generace nVidia Quadro s technologií Fermi

Jak asi tušíte, nová epocha přináší celou řadu podobných podpůrných nástrojů pro programátory. Například je tu rozhraní CompleX pro načítání obrovských scén, které by se jinak nevešly do paměti nebo knihovny SceniX pro podporu managementu grafu scén.

Nová generace nVidia Quadro s technologií FermiNová generace nVidia Quadro s technologií FermiNová generace nVidia Quadro s technologií Fermi

Jako naprosto revoluční lze považovat systém OptiX pro akceleraci výpočtů souvisejících s metodou sledování paprsků (ray-tracing). Díky této knihovně lze například řešit lom světla, zrcadlení objektů aj. speciální úlohy, které jsou jinak výpočetně velmi náročné. ApeX umožňuje implementovat GPU akcelerované chování šatů (Cloth) a iray™ je nové rozhraní implementující fotorealistický výpočet stínování metodou Global Illumination (viz. dále). Souhrnně tyto nástroje například nVidia nazývá AXE (Application Acceleration Engines).

Nová generace nVidia Quadro s technologií FermiNová generace nVidia Quadro s technologií Fermi

Programátoři tedy najednou stojí před novou startovní čárou v programování real-time aplikací. Díky AXE knihovnám mohou bezstarostně načítat obrovské scény a navíc 3D objektům doslova „vdechnout život“ a nechat je samostatně „žít“ v prostředí GPU.

Nová generace nVidia Quadro s technologií FermiNová generace nVidia Quadro s technologií Fermi

Jako další příklad uveďme zmiňované vlasy, chlupy nebo šaty. Nyní lze relativně jednoduše naprogramovat: toto je můj kolizní objekt (zjednodušené 3D těleso) představující například hlavu, nech na něm „vyrůst“ vlasy s danými fyzikálními vlastnostmi. Výsledkem je, že GPU se pak již postará o kolize, zobrazení a obecně předpokládané chování. Podobně to lze udělat s chlupy či šaty nebo se simulací vodních částic.

Clothing demo

Turbulence demo



 
Komentáře naleznete na konci poslední kapitoly.
80 čtenářů navrhlo autorovi prémii: 36.8Kč Prémie tohoto článku jsou již uzavřené, děkujeme za váš zájem.
Tento web používá k poskytování služeb soubory cookie.