technika-3d-pixel-shadery-i-pro-bezne-uzivatele
Hardware Článek Technika 3D: Pixel shadery i pro běžné uživatele

Technika 3D: Pixel shadery i pro běžné uživatele

Vrtal David

Vrtal David

28. 4. 2003 00:00 35

Seznam kapitol

1. Úvod 2. První sada příkladů 3. Druhá sada příkladů 4. Závěrečné zhodnocení

Úkolem tohoto článku je osvětlit pojem pixel shader i běžným uživatelům, kteří nemají žádné znalosti z oblasti grafických karet. V článku je obsažena sada příkladů doplněná obrázky, která by měla tento pojem dostatečně vysvětlit. P.S. Článek obsahuje i popis několika příkladů.

Reklama

Obsah minulého článku, který jsem publikoval na PCtuningu nebyl zvolen zrovna nejvhodněji. Podle reakcí čtenářů byl článek málo vysvětlující a objevilo se v něm jen velmi málo nejasných příkladů, které by pojem pixel shader osvětlily i bežnému uživateli. Protože PCtuning je server, který se nezaměřuje jen na čtenáře, kteří jsou více ci méně pokročilí v hardwarové problematice, ale je určen i bežným uživatelům, rozhodl jsem se tuto problematiku znovu otevřít. Berte tedy tento článek jako jakýsi předstupeň k článku předchozímu. Článek je určen predevším těm méně 3D-hardwarově zdatným čtenářum, kteří by se také rádi něco málo o problematice týkající se grafických karet dozvěděli.

Poznámka: V první části se podíváme na to, co vlastně pixel shader je, v dalších (už komentovaných) příkladech si ukážeme, co takový pixel shader dovede v praxi.

Tolik na úvod a nyní se již podíváme na vlastní problematiku pixel shaderů. Napřed se ale podíváme na příklad scény, která je renderována použitím pixel shaderů. Na scéně je prezentováno vytvoření přirozených světelných efektů.

Technika 3D: Pixel shadery i pro běžné uživatele
i Zdroj: PCTuning.cz

 

Příklad scény renderované s použitím pixel shaderů

Pixel shader je podobně jako vertex shader plně programovatelná jednotka, která je součástí architektury jádra grafické karty. Jejím hlavním úkolem je provádět matematické operace s takzvanými pixely. Z literatury jsem si vypůjčil fundovanou definici toho, co je přesně pixel shader. Zde je tato přesná definice:

Pixel shader je malý program, který zpracovává pixely a vykonává se v GPU - Graphics Processing Unit.

Bližší pohled na pixel shadery

Tolik k definici. Nevím jak moc je tato definice pochopitelná a proto si pojďme k tomuto tématu říci něco bližšího. Jak asi víte, jakákoliv renderovaná trojrozměrná scéna se skládá z takzvaných pixelů. V moderních trojrozměrných hrách se setkáváme s objekty, které jsou tvořeny z těchto základních stavebních prvků. Čím větší počet pixelů objekt obsahuje, tím větší je jeho detailnost. Bohužel se vzrůstajícím počtem pixelů roste také náročnost na hardwarové vybavení počítače, na kterém je hra provozována.

Abychom mohli takovéto náročné scény vytvářet, potřebujeme nástroj, který nám umožní provádět s pixely předem definované operace a na základě výsledků těchto operací vyrenderovat požadovanou scénu. No a tímto nástrojem je právě pixel shader. Pokud si předchozí definici, kterou jsem přebral z literatury trochu upravím, mohla by nakonec znít asi takto:

Pixel shader je součást grafické karty, která slouží k provádění transformačních operací se základními stavebními jednotkami každé trojrozměrné scény, takzvanými pixely.

Nyní bychom si měli vysvětlit jak souvisejí již představené vertex shadery s právě popisovanými pixel shadery. Pro tento účel nám poslouží následující obrázek pipeline grafické karty:

Poznámka: Nijak se tohoto schématu nelekejte a nenechte se jím odradit od dalšího čtení. Schéma jsem na toto místo vložil proto, že se mi bude hodit v následujícím výkladu.

Technika 3D: Pixel shadery i pro běžné uživatele
i Zdroj: PCTuning.cz

 

Pokud se na toto schéma podíváte trochu podrobněji a budete postupovat od shora dolů, všimnete si, že na pipeline se nachází nejprve vertex shader a teprve poté pixel shader. Toto je účel, proč jsem schéma na toto místo vložil. Je důležité si uvědomit, že pixel shader se vždy nachází až za vertex shaderem. Z toho vyplývá, že ve většině případů potřebuje pixel shader ke své korektní funkci data zpracovaná vertex shaderem. Na oživení výkladu přikládám ilustrační obrázek. Je na něm vidět scéna vyrenderovaná pomocí pixel shaderů. Tato scéna demonstruje možnost dosažení realistických efektů. Zobrazované ovoce se přibližuje skutečnosti s dostatečnou přesností a výsledná scéna je téměř fotorealistická.

Technika 3D: Pixel shadery i pro běžné uživatele
i Zdroj: PCTuning.cz

 

Realistická scéna renderovaná pomocí pixel shaderů

Pixel shader operuje s jednotlivými pixely, jež se skládají z jednotlivých vertexů. Na základě informací o jednotlivých vertexech provádí transformační operace s celým pixelem. V mnoha případech se dá mluvit o tom, že pixel shadery jsou řízeny pomocí vertex shaderů. Například při výpočtu takzvaného per-pixel lightning, což je případ osvětlení jednotlivých pixelů, potřebuje pixel shader znát orientaci jednotlivých vertexů, orientaci světelného vektoru a v mnoha případech i orientaci vektoru pohledu. No a právě informace o jednotlivých vertexech mu dodá vertex shader. V následujících dvou kapitolách následuje sada příkladů, která by vám měla ozřejmit pojem pixel shader ještě o něco lépe.

Předchozí
Další
Reklama
Reklama

Komentáře naleznete na konci poslední kapitoly.

Reklama
Reklama