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

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

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

Za období po které se pixel shadery objevují jako standardní součást grafickýh karet se vyvinuly již tři generace. Každá z generací obsahuje ještě nějaké vývojové stupně. Přehled všech generací pixel shaderů včetně jejich popisu je uveden v následujícím seznamu.

  • Pixel shadery generace 1.X (Radeon 8500/GeForce 3)

    • První vývojový stupeň 1.1
    • Druhý vývojový stupeň 1.2
    • Třetí vývojový stupeň 1.3
    • Čtvrtý vývojový stupeň 1.4
  • Pixel Shadery generace 2.X (Radeon 9500/9700)
  • Pixel shadery generace 2.X Extended (GeForce FX)
  • Pixel shadery generace 3.X (R400)

V dalším textu se povádíme na rozdíly mezi jednotlivými generacemi pixel shaderů. Budu se věnovat pouze základním změnám, neboť Podrobnější popis by byl již nad rámec tohoto článku.

První generace označená 1.X

Nejdříve se podíváme na první generaci pixel shaderů označovanou jako 1.X. V následujícím krátkém seznamu si uvedeme maximální počty použitelných instrukcí. Typickckým představitelem karet s pixel shadery verze 1.1-1.2 jsou grafické karty s čipy Geforce 3, Geforce 3 Ti 200, Geforce 3 Ti 500 a Radeon 7500. Pixel shadery 1.3 používají grafické karty s čipy Geforce 4 Ti 4200, Geforce 4 Ti 4400, Geforce 4 Ti 4600, Geforce 4 Ti 4800 a Geforce 4 Ti 4800 SE. Pixel shadery 1.4 používá například grafická karta Radeon 8500.

  • Verze 1.1 - 8 instrukcí.

  • Verze 1.2 - 12 instrukcí.

  • Verze 1.3 - 12 instrukcí.

  • Verze 1.4 - 14 instrukcí.

V této verzi byla vytvořena celá řada nových instrukcí. Jedná se o tyto skupiny instrukcí:

  1. Instrukce pro nastavování-def, ps.

  2. Aritmetické instrukce-add, cmp, cnd, dp3, dp4, lrp, mad, mov, mul, nop, sub.

  3. Makra-exp, frc, log, m3x2, m3x3, m3x4, m4x3, m4x4.

  4. Texturové instrukce-tex, texbem, texbeml, texcoord, texcrd, texdepth, texdp3, texdp3tex, texkill, texld, texm3x2depth, texm3x2pad, texm3x2tex, texm3x3, texm3x3pad, texm3x3tex, texm3x3spec, texm3x3vspec, texreg2ar, texreg2gb, texreg2rgb.

Dále byly přidány nové registry: constant, temporary, texture, color.

A nakonec byly přidány nové modifikátory: instruction modifiers, register modifiers, source register selectors, register write masks.

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

Druhá generace označená 2.X

V této verzi došlo k podstatným změnám. Byly vytvořeny nové typy instrukcí a některé staré typy byly naprosto zrušeny. Maximální počet instrukcí v této verzi je 96. Z toho může být 64 instrukcí aritmetických a 32 instrukcí texturových. Podrobný výpis změn v instrukcích je uveden v následujícím seznamu. Tuto verzi pixel shaderů používají grafické karty Radeon 9700 a Radeon 9700 Pro.

  1. Instrukce pro nastavování-žádné změny.

  2. Aritmetické instrukce-žádné změny.

  3. Makra-žádné změny.

  4. Texturové instrukce

    • Byly odstraněny instrukce-tex, texbem, texbeml, texcoord, texcrd, texdepth, texdp3, texdp3tex, texm3x2depth, texm3x2pad, texm3x2tex, texm3x3, texm3x3pad, texm3x3tex, texm3x3spec, texm3x3vspec, texreg2ar, texreg2gb, texreg2rgb.

    • Byly přidány instrukce-texldb, texldp.

Dále byly přidány nové registry: constant float, sampler, output color, output depth.

A nakonec byly přidány nové modifikátory: negate, partial precision, saturate.

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


Druhá generace rozšířená označená 2.X Extended

V této verzi došlo k podstaným změnám v oblasti instrukcí. Byly vytvořeny nové kategorie instrukcí, které se nenacházejí v předchozích verzích. Minimální počet instrukcí v této verzi je 96. Maximální počet instrukcí v této verzi je 512. Podrobný výpis změn v instrukcích je uveden v následujícím seznamu. Tuto specifikaci používají grafické karty Geforce FX 5800 a Geforce FX 5800 Ultra.

  1. Instrukce pro nastavování - žádné změny.

  2. Aritmetické instrukce - žádné změny.

  3. Makra - žádné změny.

  4. Instrukce pro kontrolu statického toku - call, callnz, else, end, endif, endloop, endrep, if, label,loop, rep, ret.

  5. Instrukce pro kontrolu dynamického toku - break, breakc, ifc
     
  6. Gradientní instrukce - dsx, dsy.

  7. Texturové instrukce  -texldd.

  8. Predikace - setp instruction, p# register.

Dále byly přidány nové registry: constant integer, constant Boolean, loop counter, predicate.

A nakonec byly přidány nové modifikátory: arbitrary swizzle.

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


Třetí generace označená 3.X

V této verzi nedošlo k žádným podstatným změnám v oblasti instrukcí. Nebyly vytvořeny žádné nové kategorie instrukcí. Pouze došlo k rozšíření použitelného počtu instrukcí. Minimální počet instrukcí v této verzi je 512. Maximální počet instrukcí v této verzi je 32 768. Tato specifikace existuje zatím pouze ve vývojové podobě a zatím není obsažena v žádném hardwaru (plánuje se do R400). Vývojáři zatím mají možnost se specifikací pracovat a blíže se s ní seznamovat. Až dojde k jejímu začlenění do grafických karet, budou schopni pružně reagovat na nový hardware a vytvářet pro něj aplikace plně využívající přínosy této nové specifikace. Podrobný výpis změn v instrukcích je uveden v následujícím seznamu.

  1. Instrukce pro nastavování - žádné změny.

  2. Aritmetické instrukce - žádné změny

  3. Makra - žádné změny.

  4. Instrukce pro kontrolu statického toku - žádné změny.

  5. Instrukce pro kontrolu dynamického toku - žádné změny
     
  6. Gradientní instrukce - žádné změny.

  7. Texturové instrukce - žádné změny.

  8. Predikace - žádné změny.

Registry: beze změny.

A nakonec modifikátory: opět beze změny.

Závěr

Účelem tohoto článku bylo seznámit především běžné uživatele s tím co je to pixel shader. Doufám, že i pokročilí uživatelé si článek rádi přečtou a že z něj budou moci načerpat přínosné informace. Myslím si, že takovýchto článků není na českém intermetu mnoho a proto tedy doufám, že jsem alespoň trochu přispěl k rozšíření obzorů českých uživatelů internetu.

Předchozí
Další
Reklama
Reklama

Komentáře

Nejsi přihlášený(á)

Pro psaní a hodnocení komentářů se prosím přihlas ke svému účtu nebo si jej vytvoř.

Rychlé přihlášení přes:

Google Seznam
Reklama
Reklama