390 likes | 527 Views
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
E N D
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 256 - 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)
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) 512 - 32 768 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ů • ...
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)..
vzniklo v r. 1992 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, … OpenGL
uvedl Microsoft v r. 1995 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 5.0 - 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) DirectX