jak-pracuje-graficka-karta-zaklady-3d
Hardware Článek Jak pracuje grafická karta - základy 3D

Jak pracuje grafická karta - základy 3D

Vopička Ondřej

Vopička Ondřej

30. 6. 2005 00:00 32

Seznam kapitol

1. Základní pojmy 2. Zpracování geometrie 3. Pixelové operace, rasterizace

Upravená verze: Nové grafické čipy už obsahují více tranzistorů (GeForce 7800 obsahuje 302mil. tranzistorů) než poslední super-duper 64-bitové procesory a ne vždy je zřejmé, co tyto kvanta tranzistorů vlastně dělají. Jak vlastně vzniká 3D scéna, které kroky musí proběhnout a co se při nich v grafické kartě děje? Pokud chcete pochopit základní otázky spojené s 3D renderingem, pak je tento článek určený právě pro vás.

Reklama
V první řadě chci zdůraznit, že nejsem žádný uznávaný odborník v oblasti grafiky. Mé znalosti interních pochodů grafické logiky při zpracovávání scény ze zakládají pouze na mém vlastním samostudiu (to zní divně, ale je to tak). Omlouvám se všem profi-grafikům za případný špatný výklad termínů či nepřesný překlad do češtiny.

Jak pracuje grafická karta - základy 3D
i Zdroj: PCTuning.cz

Na simulaci virtuálního 3D světa pracuje v GPU celá řada výpočetních jednotek...

Základní pojmy

V počítačové 3D grafice se používá definování scény pomocí modelování povrchů těles - jedná se o tzv. povrchovou reprezentaci (B-rep, Boudary representation). Pro věrné zobrazení reality to většinou stačí (málokdy vidíme dovnitř předmětů - výjimkou by snad mohla být skleněná koule s bublinkami, ale i to se dá v 3D namodelovat). Poznámka: povrchovou reprezentaci 3D grafiky můžete ověřit tehdy, dostane-li se "pozorovatel", například chybou enginu, dovnitř nějakého objektu (virtuální budovy, auta, modelu hráče...).

Povrch těles se dále modeluje soustavou navzájem spojených mnohoúhelníků - častěji se používá označení "polygony" (polygons). Zřídkakdy se používají složitější plochy (i když dnešní akcelerátory je už "umí") - dnešní 3D modely jsou téměř výlučně složité mnohostěny. Zjednodušení povrchů jde dokonce tak daleko, že se od vykreslovacího systému už většinou posílají jenom trojůhelníky.*

V paměti počítače je síť trojúhelníků uložená jako matice 3D souřadnic (x, y, z: zřídkakdy se používá jiná reprezentace) všech vrcholů (vertices). Pro každý trojúhelník se jen pamatuje, které tři vrcholy mu patří. Vrcholy tělesa nesou ještě další důležité informace jako barvu, normálový vektor, texturovou souřadnici (viz. dále). Běžné modely obsahují stovky (jednoduché modely) až milióny vrcholů (obrovské objekty, celá scéna).

Povrchová reprezentace objektů je do tohoto okamžiku něco jako papírový model slepený z malých polygonů. Další kvalitu tomuto modelu přinese až tzv. texturovaní. Dnešní postupy ještě zahrnují další metody (Pixel shadery), klasické texturování ale spočívá v pokrývaní polygonů malými barevnými "tapetami" - těmto tapetám říkáme textury. Textury jsou vzorky podlahy, vozidel, výstroje, nápisy, povrch obličeje, zbraní, budov...

*Problém spojený s nahrazením reálných těles (například koule) mnohoúhelníky spočívá v tom, že čím přesnější napodobení (aproximaci) chceme dosáhnout, tím větší počet trojúhelníků musíme použít - tím pomalejší bude ale vykreslování modelu grafickou kartou. Proto se dnes používají metody (například tzv. bump mapping, případně nanášení tzv. normálové mapy), kdy na jednoduché modely sestavené z menšího počtu trojúhelníků je možné nanést vrstvu která napodobuje další detaily 3D modelu (svaly na obličeji, krunýř, vnitřek ucha, kachličky).

Jak pracuje grafická karta - základy 3D
i Zdroj: PCTuning.cz

Před samotným renderingem probíhá dlouhý vývoj, kdy se předem ve specializovaných
animačních programech připraví veškeré 3D modely postav i objektů.

Fáze grafického zpracování

Jak pracuje grafická karta - základy 3D
i Zdroj: PCTuning.cz

  • Příprava aplikace
    • Pohyby těles, simulace virtuálního světa,
    • Rozhodování o tom, které části jsou nejdůležitější (LoD),
    • Rozdělení na polygony / Tesselace
      (rozdělení složitých povrchů na povrchy nižšího řádu),
  • Geometrie - většina operací je prováděná nad jednotlivými ploškami ve virtuálním 3D prostoru (nad polygony, častěji nad elementárními trojúhelníky):
    • Geometrické operace v 3D, projekce, ořezávaní, transformace,
  • Rasterizace - má za úkol převést geometrická data (trojúhelníky, body a čáry) do rastrové podoby. Patří zde:
    • Triangle Setup (určení pixelů náležejících trojůhleníkům),
    • Shading (stínování)
    • Texturování nebo nasazení Pixel Shaderů
    • Fog, Alpha Test, Depth buffering, Antialising
    • Zobrazení scény
První fází je samotná inicializace grafického rozhraní. Jedná se především o detekci aktuálního nastavení ovladačů grafické karty, zjišťují se proměnné prostředí - rozlišení, barevná hloubka, zda-li je podporovaný AntiAliasing, komprese textur a podobně. Pro jednotlivé objekty se zjišťuje úroveň detailů (LoD, Level od Detail). Tato fáze se někdy nazývá Pre-Rendering definition.

V této části nebývá ještě uvedeno v činnost 3D jádro grafické karty a obrazovka bývá zpravidla černá (s typickým probliknutím) nebo se zobrazeným 2D obrázkem (rastrovým bitmapovým obrázkem).

Předchozí
Další
Reklama
Reklama

Komentáře naleznete na konci poslední kapitoly.

Reklama
Reklama