Grafický akcelerátor
Grafické karty mají za sebou dlouhý vývoj
2D karty HGA MDA –textový režim 80x25, matice znaku 8x14 pixelů, RAM 4 kB CGA EGA VGA SVGA
Přídavné 3D akcelerátory 3Dfx Voodoo Voodoo 2 (8/12MB RAM)
První generace 3D karet nVidia Riva TNT Matrox G200 Ati Rage 128
Nástup karet s GPU DX7 –GeForce GF2 (MX) –Ati Radeon - Radeon 7500 karty s PS a VS –Radeon 8500 –GeForce 3
Současné grafické karty nVidia –GeForce FX5900 (NV35), FX5950 (NV38) –GeForce 6800 (NV40) Ati –Radeon 9800 (R300, R350, R360) –Radeon X800 (R380) ostatní –XGI (SiS + Trident, karty Volari) –S3/VIA (karty DeltaChrome)
Části grafické karty
Obecné schéma karty
Hodnocené parametry gr. karty typ GPU typ a velikost paměti šířka sběrnice propustnost sběrnice počet pipelines v GPU (zvlášť pro PS a VS) takt paměti a takt GPU maximální rozlišení barevná hloubka synchronizace signálu typ sběrnice k počítači
GPU - grafický procesor dnes jde o obecný, vektorově a rastrově orientovaný koprocesor spolupracující s CPU programování je možné od standardů OpenGL 1.2 a DirectX 8 (poslední verze jsou OpenGL 2.2 a DirectX 9c) programují se fragmentové programy pro PS a VS program je vždy proudový, nejsou možné smyčky a větvení (musí se vytvářet víceprůchodové lineární programy
programovací jazyky pro GPU MS HLSL (High-Level Shader Language) - ve Visual Studiu CG (od nVidie) - podobný C SRSL, Atilla, ShadeLab, SUSHI (Ati) přímý nástroj pro převod do fragmentových programů se teprve vyvíjí
Pixel Shadery Pixel Shader je samostatně pracující jednotka v GPU, která je plně programovatelná a pracuje s pixely při transformaci a nasvícení scény
Složení Pixel Shaderu vstupní registry vector pipe - zpracovává RGB data alpha pipe - pracuje s kanálem alfa masking výstupní registry
Generace Pixel Shaderů PS 1.X (Radeon 8500, GeForce 3) - max 14 instrukcí PS 2.X (Radeon 9500/9700, GeForce FX) - max 96 instrukcí PS 3.X (R400) instrukcí
Kategorie instrukcí instrukce pro nastavování aritmetické instrukce makra instrukce pro kontrolu statického toku instrukce pro kontrolu dynamického toku gradientní instrukce texturové instrukce predikace
Vertex Shadery Vertex je bod v průsečíku dvou praprsků tvořících úhel, dvou stran polygonu nebo dvou hran tělesa (bod, ve kterém se setkávají čáry, paprsky a hrany) vertices jsou množiny vertexů Vertex Shader je samostatně pracující jednotka v GPU, která je plně programovatelná a pracuje s vertexy při transformaci a nasvícení scény
Čím se podílí VS na vytváření obrazu může pomáhat při přípravě scény (teselaci) vypočítá rotace scény vypočítává světlo, intenzitu, směr paprsků, atd. může být použit i při animování a umísťování scény především ale TRANSFORMUJE
Další moderní postupy 3D grafiky ukládání šablon do zásobníku (stencil buffering) využívání Z-bufferu environment-based bump mappint truform MPI mapování antialiasing interpolace klíčových snímků...
Příklady použití
...
Světlo ve scéně metody RayTracingu –sleduje paprsek rekurzivně –postupuje se od oka až k předmětu a dále ke zdroji světla –pak získá bod barvu předmětu, do kterého paprsek narazil a intenzitu metody Radiosity –počítají i s odraženým a rozptýleným světlem –vyžaduje víceprůchodové zpracování používají se kombinované metody
Paměťi grafických karet sledovaly vývoj RAM (EDO > BEDO > FPM > SDRAM > DDR > DDR2) podléhaly však úpravám (pouzdro, dvojcestnost - VRAM, WRAM)
Konektory grafické karty D-SUB (VGA) DVI S-VIDEO kompozitní výstup a další
Ukázky možností akcelerátorů ukázka z interaktivního dema využívající pokročilé metody stínování technikami IBR, včetně post-processing Pixel Shader efektů
real-time Image processing na GPU: mapování videa (plný PAL) na zrcadlovou texturu.
pokročilá metoda zobrazení hor - rozptyl světla (scattering).
ukázka real-time shaderu pro simulaci průhledných refraktivních povrchů (ATI).
ukázka Pixel Shaderu umožňující aplikovat rozdílné parametry stínování pro každý bod textury (vlevo jeden povrchy pro celou texturu, vpravo změna parametrů textury pro každý bod).
ukázka interaktivního real-time dema ukazující pokročilý výpočet anizotropického stínovacího modelu (ATI).
pokročilý real-time shader simulující objemový stínovavací model (červené krvinky).
ukázka z dema obsahující real-time pokročilé stínovací modely na GPU (hrbolatá textura, zrcadlení, průhlednost, nasvícení okolím aj.).
kázka vytváření NPR stínování pomocí multi-vrstvé kompozice výstupů z Vertex a Pixel Shaderů. Princip vytváření NPR stínování je založen na detekcích hran normálové mapy, mapy hloubky a rozhraní objektů.
ukázka z interaktivního dema využívající Vertex Shaderu pro real-time simulaci pohybového rozostření (motion blur) a stínů (shadow volumes)..
OpenGL vzniklo v r z IrisSGI (Silicon Graphics) jednou z předností je jednodušší programování umí používat systémové vstupy a výstupy programuje se procedurálně podpora je ve všech kartách - záleží na verzi např GeForce FX a GeForce 4 podporují verzi 1.4 dnes verze 2.0 mnoho výrobců přidává vlastní extenze (gl_nv_, gl_ati_) je NEJPOUŽÍVANĚJŠÍ, nejen hry, ale i CAD a 3D aplikace např. 3D Studio, Maya, Lightwave, Quake, Half-Life, …
DirectX uvedl Microsoft v r jako nástupce GDI (Graphic Device Interface) obchází GDI a přístupuje přes vrstvu HAL přímo k hardwaru v roce 1997 vyšla verze první použitelná od DX6.0 podpora bump mappingu od DX 7 podpora T& L jednotky od DX8 podpora PS a VS dnes DX9 s podporou posledních verzí PS a VS (od Radeonu 9700)