technika-3d-uvod-do-pixel-shaderu
Hardware Článek Technika 3D: Úvod do Pixel Shaderů

Technika 3D: Úvod do Pixel Shaderů | Kapitola 2

Vrtal David

Vrtal David

9. 4. 2003 00:00 39

Seznam kapitol

1. Stručný úvod 2. Základní popis funkcí pixel shaderů 3. Popis jednotlivých generací pixel shaderů

Připravujeme pro vás seriál článků, který vám poodhalí taje a možnosti mnohokrát skloňovaných pixel a vertex shaderů. Začínáme úvodem do problematiky pixel shaderů - mocného nástroje na výrobu úžasných grafických efektů.

Reklama

Pixel shader je jedna ze základních částí architektury grafického čipu. Jedná se o jednotku, která je plně programovatelná. Posupný vývoj přinesl několik generací této jednotky. Jednotlivými generacemi se zabývám v samostatném odstavci uvedeném níže. S jednotlivými generacemi se zvyšuje počet instrukcí, které můžeme pro tuto jednotku použít. Na diagramu vidíte paralelní uspořádání pipeline struktury aritmeticko logické jednotky pixel shaderu, takzvané ALU.

Technika 3D: Úvod do Pixel Shaderů
i Zdroj: PCTuning.cz

 

Paralelní uspořádání pipeline struktury aritmeticko logické jednotky

Pokud se na diagram podíváme podrobněji, jistě si všimnete toho, že na blokovém schématu jsou opravdu patrné dvě paralelně uspořádané větve. Větev na levé straně je na obrázku označená jako Vector pipe. Jedná se o vektorovou pipeline, která pracuje a operuje čistě s vektorovými daty. Vektorová data jsou často nazývána jako data barev. Z toho důvodu obsahují tři barevné kanály RGB, kde R (red) znamená barevný kanál pro červenou barvu, G (green) znamená barevný kanál pro zelenou barvu a B (blue) znamená barevný kanál pro modrou barvu. Větev na pravé straně je v diagramu označena jako Alpha pipe. Jedná se o skalární pipeline, která operuje s jednoduchými datovými hodnotami alfa. Tyto hodnoty najdete na diagramu pod označením A (alfa). Jedná se o takzvaný alfa kanál.

Nyní si podrobně popíšeme jednotlivé části nacházející na diagramu.

  1. Vstupní registry -na obrázku jsou označeny jako input register(s) . Jedná se o vstupní data obsahující informace o RGBA signálu.

  2. Komponenta pro kopírování -na obrázku je označena jako component copy . Jedná se o zdrojový selektor registru, který kopíruje data z jednoho kanálu do ostatních kanálů. Tato operace se běžně nazývá swizzling.

  3. Modifikování dat -na obrázku označeno jako modify data . Jedná se o takzvané zdrojové modifikátory registrů. Tyto modifikátory se používají ke změně hodnot čtených ze zdrojových registrů předtím, než dojde k běhu instrukcí. Modifikátory mohou být použity k nastavení rozsahu dat v registrech připravovaných pro instrukci. Mohou být použity pouze pro aritmetické instrukce. Nelze je použít pro instrukce adresující textury.

  4. Prováděcí instrukce -na obrázku je označena jako execute instruction . Používá se pro provádění aritmetických a texturově adresovaných operací s daty o pixelech. Pipes určené pro barevný kanal nebo pro alpha kanál nemohou běžet se stejnými instrukcemi ani nemohou používat stejné zdrojové registry.

  5. Modifikování výsledku -v diagramu je označeno jako modify result . Je prováděno pomocí takzvaných instrukčních modifikátorů. Tyto modifikátory slouží ke změně výstupních dat instrukcí ještě předtím, než jsou zapsány do výstupních registrů. Mohou být použity pro násobení nebo dělení výsledků faktorem dva a dále pro sevření výsledku nacházejícího se mezi nulou a jedničkou. Instrukční modifikátory jsou aplikovány až po běhu instrukce, ale před tím než je výsledek zapsán do cílového registru. Můžeme použít instrukční modifikátor tří typů. Jejich seznam je uveden níže.

    • Modifikátor pro násobení -po načtení dat z registrů násobí tato vstupní data faktorem dva.

    • Modifikátor pro dělení -po načtení dat z registrů dělí tato vstupní data faktorem dva.

    • Saturační modifikátor -slouží k sevření rozsahu hodnot v registrech nacházejících se mezi nulou a jedničkou.
  6. Maskování -v článku nazvané jako masking . Pro tuto operaci se používají takzvané masky pro zápis do registru. Jejich účelem je kontrolovat, které komponenty cílového registru byly zapsány pomocí instrukcí. Dále kontrolují, které kanály (red , green, blue, alpha) byly v cílovém registru zaktualizovány.

  7. Výstupní registr -v diagramu označený jako output register . Nachází se na konci shaderu. Obsahuje v sobě informace o konečné barvě.
Předchozí
Další
Reklama
Reklama

Komentáře naleznete na konci poslední kapitoly.

Reklama
Reklama