www.svethardware.cz
>
>

Grafická pipeline: jak se vytváří obraz

Grafická pipeline: jak se vytváří obraz
, , článek
Dnes se podíváme na grafickou pipeline tak, aby souvislosti byly co nejvíce srozumitelné i pro čtenáře, kteří se o tuto problematiku dosud nezajímali. Půjde o předzvěst dalších článků o grafických kartách včetně recenzí zajímavých modelů.
K oblíbeným
Kapitoly článku:
  1. Grafická pipeline: jak se vytváří obraz
  2. Fáze Draw
  3. DirectX
reklama
Nad problematikou grafické pipeline se budeme kvůli zjednodušení vznášet tak vysoko, že se nám některé detaily ztratí z dohledu úplně. Cílem je především populárnější formou seznámit zvídavé čtenáře s tím, jak fungují počítačové hry, grafická pipeline a samozřejmě i samotná grafická karta.

Další důvod pro přečtení tohoto článku je ten, že u dalších plánovaných článků s podobnou tématikou, třeba o grafických kartách a jejich měření, nebo o vadách plynulosti pohybu v počítačových hrách, bude počítáno s tím, že jste tento článek četli a máte tedy alespoň minimální přehled o této problematice. Pojďme se tedy kouknout na náš letový plán a vůbec nad čím to vlastně poletíme.



Naše první přeletová oblast je samotná počítačová hra, kde naše grafické potrubí vzniká a opravdu hodně se tam toho mele. Snížíme tedy výšku a začneme se rozhlížet.


Počítačová hra


Grafickou pipeline nevyužívají pouze počítačové hry, mohou to být i další a profesionální aplikace, které ji pro svůj běh vyloženě potřebují. Mohou to být různé 3D konstrukční aplikace založené na CAD systémech a podobně. My se ale budeme věnovat výhradně počítačovým hrám, a to pouze v rozsahu, který je pro naše téma důležitý. Určitě nečekejte, že po přečtení této kapitoly se z vás stane herní vývojář, ale některé informace by pro vás mohly být nové, zajímavé a celkově užitečné.



Každá hra je vlastně aplikace (program), která běží v nějaké nekonečné smyčce. Ta nejzákladnější a nejjednodušší herní smyčka (loop) vypadá asi nějak takto:



Po spuštění hry a načtení všech zdrojů (resources) se kód hry dostává do nekonečné smyčky Update – Draw. Je to naprosto triviální smyčka, v které aplikace zůstává po celou dobu až do okamžiku, kdy ve hře nějakým příkazem Stop, tuto smyčku opustíme a aplikaci ukončíme.

Ve fázi Update se zjišťuje interakce hráče, tedy jestli byla stisknuta nějaká klávesa, či pohnuto myší. Pokud ano, pak u všech objektů, které tvoří 3D scénu, musí být přepočtena jejich nová pozice (transformace). Ve fázi Draw je pak tato nově zkomponovaná scéna odeslána k zobrazení na monitor. Pokud ve fázi Update žádná interakce hráče nebyla zjištěna, kompozice scény se nemění, žádná transformace se počítat nemusí a je hned zavolána procedura Draw, která opět odešle, tentokrát ale nezměněnou, scénu k zobrazení na monitoru.

Existuje celá řada herních smyček, které berou v potaz i časování, nebo omezení snímkové frekvence hry. Těmi se ale zde zabývat nebudeme, nám pro další výklad bohatě postačí tato základní herní smyčka.

Nyní si všimněte jedné věci. Pokud nebyla žádná interakce a transformace objektů ve scéně tak nemusela být počítána, snímková frekvence (počet průchodů smyčkou) musí být jiná (vyšší), než kdyby interakce byla a transformace objektů se tak musela počítat. Je to samozřejmě tím, že procesor při výpočtu transformace objektů trávil ve fázi Update delší dobu (musel něco počítat) a průchod smyčkou tak zdržel.

Z pohledu výkonu (snímkové frekvence) platí tedy úměra, že čím delší čas tráví procesor v průchodu herní smyčkou na různých výpočtech scény, tím nižší bude snímková frekvence hry.

Dalším aspektem je plynulost smyčky. V průběhu hry se počet objektů ve scéně může lišit. Nejde pouze o počet, ale i o složitost jejich tvarů (model s různým počtem vertexů a polygonů). Je jasné, že procesor tráví na výpočtech transformace více času, když je objektů na scéně více a mají komplexnější model, než když jich tam je méně a jejich model je jednodušší. Snímková frekvence se tedy v čase může měnit, a to někdy opravdu výrazně.

Vývoj her jde neustále kupředu a je počítáno stále více a více komplexnějších objektů. Dnes už také nestačí počítat jednoduché transformace objektů, ale je nutné do těchto transformací započítat i jejich fyzikální chování (gravitace, tření...). Dále pak částicové efekty, prostorové zvuky atd. Prostě výpočty jsou opravdu masivní a vývojáři se s tím musí nějak poprat. Pokud by totiž všechny tyto výpočty byly prováděny v herní smyčce pouze procesorem (a nedej bože pouze pomocí jednoho vlákna), věřte, že by se snímkové frekvence dnešních her držely hodně při zemi.

Hry se tedy musí již v samotné herní smyčce nějakým způsobem optimalizovat. Jde především o rozložení zátěže CPU do více vláken (nebo jader), kde se část procesoru věnuje výpočtům jednoho druhu, další část zase výpočtům druhu jiného, zvukům, umělé inteligenci atd. Další a velmi významná optimalizace spočívá v přenesení některých masivně paralelních výpočtů na bedra grafické karty. Grafická karta je totiž (už z principu její architektury) na výpočty tohoto typu lépe navržena a procesor se s ní výkonnostně nemůže (a to ani náznakem) srovnávat.

Zkrátka a dobře, všechny tyto optimalizace mají jediný cíl, a to zkrátit čas výpočtů v herní smyčce, čímž je dosažena vyšší snímková frekvence hry. Pokud hra není takto optimalizována a počet průchodů herní smyčkou klesne třeba na 30 průchodů za sekundu (Hz), můžete vlastnit i tu nejvýkonnější grafickou kartu na světě, ale více jak těch 30 fps (snímků za sekundu) vám prostě v takové hře nedá.
reklama
Nejnovější články
Někteří uživatelé Maců s Apple M1 si stěžují na vysoké opotřebení SSD Někteří uživatelé Maců s Apple M1 si stěžují na vysoké opotřebení SSD
SSD mají omezenou životnost danou množstvím přepisů jednotlivých buněk. Někteří uživatelů Maců s procesorem Apple M1 reportují nebývale vysoký počet přepisů, což by mohlo znamenat brzkou smrt napevno připojených SSD.
Dnes, aktualita, Milan Šurkala2 komentáře
Jak si vede GeForce RTX 3060 v recenzích? Jak si vede GeForce RTX 3060 v recenzích?
O grafické kartě GeForce RTX 3060 toho bylo řečeno už mnoho, ostatně NVIDIA se rozhodla, že nás bude napínat už od začátku roku. Nyní už tu máme recenze různých jejích verzí, a tak se podívejme na to, jaký výkon takto karta opravdu nabízí. 
Dnes, aktualita, Jan Vítek1 komentář
Parker Solar Probe se zblízka podívala na Venuši Parker Solar Probe se zblízka podívala na Venuši
Sonda Parker Solar Probe studuje samotné Slunce, ovšem využívá gravitační manévry s využitím Venuše, což znamená, že se k ní za svou sedmiletou misi celkem sedmkrát přiblíží či už přiblížila, jako v tomto případě. 
Dnes, aktualita, Jan Vítek
NVIDIA představuje GeForce RTX 3060 NVIDIA představuje GeForce RTX 3060
Na trh přichází první GeForce RTX 3000 vybavená 12 GB paměti a kupodivu jde o dosud nejslabší model, RTX 3060. NVIDIA ji vypouští na trh právě dnes s tím, že recenze budou zveřejněny až při samotném začátku prodeje. 
Dnes, aktualita, Jan Vítek2 komentáře
Kingston prodává svou herní divizi HyperX firmě HP Kingston prodává svou herní divizi HyperX firmě HP
Společnost Kingston se už dohodla s HP na prodeji své dobře známé herní divize HyperX, která tvoří řadu různých produktů pod danou značkou. Nicméně ne vše, co známe jako HyperX, přejde pod HP. 
Dnes, aktualita, Jan Vítek