Title: Introduction aux Cartes Graphiques
1Introduction auxCartes Graphiques
2Plan du cours
- Modes graphiques
- Historique
- Architecture dune carte graphique
- Vue globale
- Ramdac
- DVI
- Mémoire vidéo
- Bus
- Accélérateur graphique 2D/3D
3Première partieModes graphiques
4Modes graphiques (1/12)
- Première carte graphique
- Par IBM en 1981
- MDAs Monochrome Display Adapters
- Mode texte uniquement 80x25 caractères à 50Hz
- Port imprimante
- CGA
- HGC
- EGA
- VGA
- SVGA
- Standard XGA, SXGA, UXGA
- Wide screen WXGA, WSXGA, WUXGA (16/9ème 16/10ème
) - Quad format QXGA, QSXGA, QUXGA
5Modes graphiques (2/12)
- MDAs
- CGA
- En 1981 (avec arrive des Personal Computer)
- Mode Graphique Couleur 320x200x4 couleurs
- Essentiellement jeux vidéos
- Manque de résolution pour bureautique
- HGC
- CGA
- EGA
- VGA
- SVGA
- Standard XGA, SXGA, UXGA
- Wide screen WXGA, WSXGA, WUXGA (16/9ème 16/10ème
) - Quad format QXGA, QSXGA, QUXGA
6Modes graphiques (3/12)
- MDAs
- CGA
- HGC
- Par Hercules (fondé en 1982)
- Hercules Graphics Card (compatible MDAs)
- Mode graphique monochrome 720x348
- EGA
- VGA
- SVGA
- Standard XGA, SXGA, UXGA
- Wide screen WXGA, WSXGA, WUXGA (16/9ème 16/10ème
) - Quad format QXGA, QSXGA, QUXGA
7Modes graphiques (4/12)
- MDAs
- CGA
- HGC
- EGA (Enhanced Graphics Adapter)
- Par IBM en 1984
- Résolution max 640x350x16 couleurs
- Palette de 64 couleurs
- Fréquence de 60Hz
- VGA
- SVGA
- Standard XGA, SXGA, UXGA
- Wide screen WXGA, WSXGA, WUXGA (16/9ème 16/10ème
) - Quad format QXGA, QSXGA, QUXGA
8Modes graphiques (5/12)
- MDAs
- CGA
- HGC
- EGA
- VGA (Video Graphic Array)
- Par IBM en 1987
- Résolution 640x480x16 720x400 (mode texte)
- Résolution 320x200x256 (Mode MCGA Multi Colour
Graphics Array) - Palette de 262.144 couleurs (6 bits par couleur)
- 1er standard vidéo à fonctionner en analogique
- SVGA
- Standard XGA, SXGA, UXGA
- Wide screen WXGA, WSXGA, WUXGA (16/9ème 16/10ème
) - Quad format QXGA, QSXGA, QUXGA
9Modes graphiques (6/12)
- MDAs
- CGA
- HGC
- EGA
- Amélioration du VGA par IBM
- 8514/A (1987)
- 1024x768x256 43.5Hz entrelacé640x480 60Hz
non-entrelacé - SVGA
- Standard XGA, SXGA, UXGA
- Wide screen WXGA, WSXGA, WUXGA (16/9ème 16/10ème
) - Quad format QXGA, QSXGA, QUXGA
10Modes graphiques (7/12)
- MDAs
- CGA
- HGC
- EGA
- Amélioration du VGA par IBM
- XGA (eXtended Graphics Array)Introduit en 1990,
successeur du 8514/A512Kb/1Mb VRAM 1024x768x256
640x480x16bits - SVGA
- Standard XGA, SXGA, UXGA
- Wide screen WXGA, WSXGA, WUXGA (16/9ème 16/10ème
) - Quad format QXGA, QSXGA, QUXGA
11Modes graphiques (8/12)
- MDAs
- CGA
- HGC
- EGA
- Amélioration du VGA par IBM
- XGA2 XGA avec fréquence plus élevées1024x768x16b
its -gt 65535 couleurs800x600x24bits -gt 16
millions de couleurs - SVGA
- Standard XGA, SXGA, UXGA
- Wide screen WXGA, WSXGA, WUXGA (16/9ème 16/10ème
) - Quad format QXGA, QSXGA, QUXGA
12Modes graphiques (9/12)
- MDAs
- CGA
- HGC
- EGA
- VGA
- SVGA (SuperVGA)
- Basé sur le VGA avec spécifications du
constructeur - Reconnu standard du mode 800x600
- Manque de standardisation gt Consortium des
principaux constructeurs - Video Electronics Standards Association (VESA)
propose une interface logiciel standard - Standard XGA, SXGA, UXGA
- Wide screen WXGA, WSXGA, WUXGA (16/9ème 16/10ème
) - Quad format QXGA, QSXGA, QUXGA
13Modes graphiques (10/12)
- MDAs
- CGA
- HGC
- EGA
- VGA
- SVGA
- Standard XGA, SXGA, UXGA
- UVGA (UltraVGA) et XGA standard 1024x768
- SXGA (SuperXGA) standard 1280x1024
- UXGA (UltraXGA) standard 1600x1200
- Wide screen WXGA, WSXGA, WUXGA (16/9ème 16/10ème
) - Quad format QXGA, QSXGA, QUXGA
14Modes graphiques (11/12)
- MDAs
- CGA
- HGC
- EGA
- VGA
- SVGA
- Standard XGA, SXGA, UXGA
- Wide screen WXGA, WSXGA, WUXGA (16/9ème
16/10ème) - WXGA (Wide eXtended Graphics Array) standard
1280x800 - WSXGA (Wide Super eXtended Graphics Array)
standard 1600x1024 - WUXGA (Wide Ultra eXtended Graphics Array)
standard 1920x1200 - Quad format QXGA, QSXGA, QUXGA
15Modes graphiques (12/12)
- MDAs
- CGA
- HGC
- EGA
- VGA
- SVGA
- Standard XGA, SXGA, UXGA
- Wide screen WXGA, WSXGA, WUXGA (16/9ème 16/10ème
) - Quad format QXGA, QSXGA, QUXGA
- QXGA (Quad eXtended Graphics Array) standard
2048x1536 - QSXGA (Quad Super eXtended Graphics Array)
standard 2560x2048 - QUXGA (Quad Ultra eXtended Graphics Array)
standard 3200x2400
16Deuxième partieArchitecture
17Architecture - Vue globale
BUS
18Archi. - RAMDAC (1/4)
- Random Access Memory Digital to Analogic
Converter - Convertisseur numérique à analogique pour
périphérique CRT(Cathodic Ray Tube) - Fréquence interne liée à la fréquence de
rafraîchissement du moniteur - Accès à la mémoire vidéo (framebuffer)
- Possède sa propre mémoire vive pour stocker les
palettes de conversion
Mémoire Centrale
BUS
GPU
DVI
Mémoire vidéo
CRT
Ramdac
19Archi. - RAMDAC (2/4)
- Le RAMDAC peut recevoir les formats suivants
- True Color 1 octet/composante ? 24 bits
- HiColor 2 modes
- 2 x 5bits (rouge et bleu) 6bits (vert) ? 16
bits (65536 couleurs) - 5 bits par composante ? 15 bits (32768 couleurs)
- RGBA True Color ajout du canal alpha ? 32 bits
- Fausses couleurs indexation dune palette de
couleurs (24bits/couleur) ? envoi des couleurs
indexées
20Archi. - RAMDAC (3/4)
- Fonctionnement de lil (persistance
rétinienne) - une image perçue reste environ 0,1 sec sur la
rétine ? rémanence visuelle - en enchaînant les images à une fréquence de 25Hz
à 30Hz ? effet danimation - Fréquence de rafraîchissement de limage au
minimum 50Hz en entrelacé (affichage des lignes
impaires puis paires) - Confort des yeux pour f gt 72hz
- Fréquence interne élevée (MHz)
- Accès mémoire très fréquent
21Archi. - RAMDAC (4/4)
- Calcul théorique de la fréquence interne
- Taille de lécran largeur x hauteur
- Fréquence visuelle (ex 75 Hz) freq
- Fréquence internefreq. int. largeur x hauteur
x freq x 1.32 - Facteur 1.32 le canon à électrons perd environ
32 du temps pour les déplacements horizontaux et
verticaux - Radeon 9800 ou GeForce FX 5900 Bi-Ramdac 400Mhz
- 1600 x 1200 ? 120 Hz
- 2048 x 1536 ? 85 Hz
- Pour résolution de 1600x1200 à 85hz il faut un
RAMDAC de 1600x1200x85x1.32 205 Hz - Problème limitation des moniteurs actuels
22Archi. - DVI
- Digital Video Interface
- spécifié par Digital Display Working Group
- pour périphériques numériques et analogiques
- 3 normes existantes
- DVI-A signal analogique en sortie
- DVI-D signal numérique
- DVI-I (I integrated) prend en charge les 2
types de sortie - DVI-D et DVI-I pour les périphériques numériques
(écran plat, ) ? pas de RAMDAC
23Archi. - Mémoire Vidéo (1/5)
- Besoin dun débit soutenu
- Résolution 1024x768 en true color à 70Hz gt débit
de 1024x768x3x70 157 Mo/s - Accès multiple du GPU et du RAMDAC ? latence
- Nombreux types de mémoire DRAM, VRAM, SDRAM,
RAMBUS, ...
- DRAM
- DRAM EDO
- VRAM
- WRAM
- MDRAM
- SDRAM
- SGRAM
- RAMBUS
- DDR-SDRAM
24Archi. - Mémoire Vidéo (2/5)
- DRAM (Dynamic RAM)
- type FPM (Fast Page Mode) rafraîchi très souvent
? latence ( asynchrone) ? accès en 70 ns - 225 Mo/s (33Mhz-50MHz)
- type de mémoire lente et dépassée
- DRAM EDO (DRAM Extended Data Out)
- 400 Mo/s (inadaptée pour des fréquences gt 66 MHz)
- accès réduit à 50-60 ns (système de cache de
ladresse de la prochaine cellule à lire/écrire) - surtout employé par 3DFX (Diamond Monster) mais
aussi par S3 (Virge 3D)
- DRAM
- DRAM EDO
- VRAM
- WRAM
- MDRAM
- SDRAM
- SGRAM
- RAMBUS
- DDR-SDRAM
- DRAM
- DRAM EDO
- VRAM
- WRAM
- MDRAM
- SDRAM
- SGRAM
- RAMBUS
- DDR-SDRAM
25Archi. - Mémoire Vidéo (3/5)
- VRAM (Video RAM)
- 625 Mo/s (30 plus chère que DRAM)
- Jusquà 80 MHz - temps daccès 20-25 ns
- Dual Port (grâce à un registre à décalages)
- WRAM (Windows RAM)
- 960 Mo/s
- VRAM avec circuit 32 bits
- Fonctionnalités 2D (transfert de mémoire, )
- Matrox (Millénium II)
- DRAM
- DRAM EDO
- VRAM
- WRAM
- MDRAM
- SDRAM
- SGRAM
- RAMBUS
- DDR-SDRAM
- DRAM
- DRAM EDO
- VRAM
- WRAM
- MDRAM
- SDRAM
- SGRAM
- RAMBUS
- DDR-SDRAM
- DRAM
- DRAM EDO
- VRAM
- WRAM
- MDRAM
- SDRAM
- SGRAM
- RAMBUS
- DDR-SDRAM
- MDRAM (Multi-bank DRAM)
- Accès simultanés
- 500 Mo/s
- Cartes S3, Hercules Dynamite 128, Tseng Labs
ET6000
26Archi. - Mémoire Vidéo (4/5)
- SDRAM (Synchronous RAM)
- apparue en 1997
- synchronisée avec le bus mémoire
- temps daccès 10-12 ns
- Fréquence 66-133 Mhz
- 500, 800, 1.060 Mo/s ? 66, 100, 133 Mhz
- SGDRAM (Synchronous Graphic RAM)
- SDRAM dédié pour la vidéo
- Single Port
- synchronisé au bus mémoire (lt100MHz)
- techniques
- Masked write modification en 1 cycle
- Mode rafale (Block write) récupération/modificati
on par blocs entiers - exemple Matrox Mystique
- DRAM
- DRAM EDO
- VRAM
- WRAM
- MDRAM
- SDRAM
- SGRAM
- RAMBUS
- DDR-SDRAM
- DRAM
- DRAM EDO
- VRAM
- WRAM
- MDRAM
- SDRAM
- SGRAM
- RAMBUS
- DDR-SDRAM
27Archi. - Mémoire Vidéo (5/5)
- RAMBUS
- soutenue par Intel
- à 300 MHz, 1.2 Go/s
- à 400 MHz, 1.6 Go/s
- énorme latence
- DDR-SDRAM (Double Data Rate SDRAM)
- 2 informations transférées par cycle (1 front
montant / 1 front descendant) - temps daccès 6 ns
- fréquence de 100 - 500 MHz
- débit de 1.5 - 3 Go/s
- exemple GeForce 6800 - Radeon X800
- DRAM
- DRAM EDO
- VRAM
- WRAM
- MDRAM
- SDRAM
- SGRAM
- RAMBUS
- DDR-SDRAM
- DRAM
- DRAM EDO
- VRAM
- WRAM
- MDRAM
- SDRAM
- SGRAM
- RAMBUS
- DDR-SDRAM
28Archi. - Bus (1/10)
- ISA (Industry Standard Architecture)
- 1981 8 bits à 4.7 MHz (8086)
- 1994 16 bits à 6 puis 8 MHz (80286)
- débit maximal de 5.5Mo/s
- Goulot détranglement dès larrivée du 80386
- Propriétés
- ? facilement utilisable et peu coûteux
- ? bus très lent
Mémoire Centrale
BUS
GPU
DVI
Mémoire vidéo
CRT
Ramdac
- ISA
- MCA
- EISA
- VLB
- PCI
- AGP
- PCIe
29Archi. - Bus (2/10)
- MCA (Micro Channel Architecture)
- développé et utilisé par IBM (avec ses PS/2)
- incompatibilité avec lISA ? monopole dIBM
- 1er bus à 32bits - 10 Mhz (40 Mo/s)
Mémoire Centrale
BUS
GPU
DVI
Mémoire vidéo
- EISA (Enhanced ISA)
- sorti en 1988
- développé par des constructeurs (Compaq, ) pour
contre-attaquer le MCA - architecture 32bits, compatible ISA 8/16 bits
- 8.33 Mhz (compatibilité ISA) - 33 Mhz
- utilisation applications lourdes (serveurs de
fichiers, )
CRT
Ramdac
- ISA
- MCA
- EISA
- VLB
- PCI
- AGP
- PCIe
- ISA
- MCA
- EISA
- VLB
- PCI
- AGP
- PCIe
30Archi. - Bus (3/10)
- VLB (VESA Local Bus)
- sorti en 1992
- développé parVideo Electronic Standard
Association - extension du bus local du processeur (port ISA
étendu) - spécifique aux cartes graphiques
- bus de 32bits
- fréquence externe du processeur 33 à 50 Mhz
- débit théorique 130 Mo/s (40Mo/s en pratique)
- VLB 2.0 fonctionne en 64 bits
Mémoire Centrale
BUS
GPU
DVI
Mémoire vidéo
CRT
Ramdac
- ISA
- MCA
- EISA
- VLB
- PCI
- AGP
- PCIe
31Archi. - Bus (4/10)
- PCI (Peripheral Component Interconnect )
- réponse dIntel au VLB (1993)
- PCI 1.0 32bits - 33MHz ?132 Mo/s (le plus
courant) - PCI 2.0 64 bits (33, 66, 133 MHz) pour serveurs
- fonctionnalités que ne possède pas le VLB
- Bus Master transfert entre 2 périphériques PCI
- Look Ahead anticipation
- Buffering stockage temporaire de linformation
?meilleur débit - incompatible avec ISA ? carte-mère avec slots PCI
et ISA - devenu un standard et un goulet détranglement !
Mémoire Centrale
BUS
GPU
DVI
Mémoire vidéo
CRT
Ramdac
- ISA
- MCA
- EISA
- VLB
- PCI
- AGP
- PCIe
32Archi. - Bus (5/10)
- AGP (Accelerated Graphics Port) 1997
- bus spécifique aux cartes graphiques / archi
32bits - basé sur le PCI 2.1 ? 66 MHz
- existence dune version professionnelle (110 W au
lieu de 50W) - SBA (Side Board Addressing) données chargées sur
le bus AGP utilisation du PCI pour signaux de
contrôle - Fonctionnalités
- Bus mastering accès direct à la mémoire
- Pipelining requêtes en série ( ? PCI avec
attente d ACK) - 2 modes de fonctionnements
- Mode PIPE (local texturing) utilisation dun DMA
pour transfert vers mémoire locale (2 cycles pour
afficher) - Mode DIME (Direct Memory Execute) traitement des
textures en mémoire centrale (1 cycle pour
afficher)
Mémoire Centrale
BUS
GPU
DVI
Mémoire vidéo
CRT
Ramdac
- ISA
- MCA
- EISA
- VLB
- PCI
- AGP
- PCIe
33Archi. - Bus (6/10)
- AGP (Accelerated Graphics Port) ...
- débits
- 1x 264Mo/s (codage sur les fronts montants)
- 2X 528Mo/s (codage sur les deux fronts)
- PIPE envoie donnéecontrôle multiplexé
- SBA envoie donnéecontrôle dé-multiplexé
- 4x 1Go/s (double les infos sur chaque front)
- mémoire suffisamment rapide (DDR ou RAMBUS)
- Fast Write accès direct mémoire vidéo
- 8x 2Go/s (quadruple les infos sur chaque front)
mais gain minuscule de 5 par rapport au 4x
Mémoire Centrale
BUS
GPU
DVI
Mémoire vidéo
CRT
Ramdac
- ISA
- MCA
- EISA
- VLB
- PCI
- AGP
- PCIe
34Archi. - Bus (7/10)
- PCI express (PCIe)
- objectifs
- bande passante élevée (jusquà 8Gb/s)
- fournir une qualité de service
- intégrité des données/détection derreurs
- priorité des données
- branchement à chaud (hot plug)
- gestion de lalimentation
Mémoire Centrale
BUS
GPU
DVI
Mémoire vidéo
CRT
Ramdac
- ISA
- MCA
- EISA
- VLB
- PCI
- AGP
- PCIe
35Archi. - Bus (8/10)
- interface série décomposée en plusieurs niveaux
- Couche physique
- Bus constitué de 2 paires de signaux (1 émission,
1 réception) - Bande passante peut-être augmentée linéairement
par ajout de paires de lignes (x1 ? x32) - Couche de données
- Couche de transactions
Mémoire Centrale
BUS
GPU
DVI
Mémoire vidéo
CRT
Ramdac
- ISA
- MCA
- EISA
- VLB
- PCI
- AGP
- PCIe
36Archi. - Bus (9/10)
- interface série décomposée en plusieurs niveaux
- Couche physique
- Couche de données
- Responsable de lintégrité des données
- Protocole de contrôle de flux pour sassurer que
le paquet nest émis que lorsquun buffer de
réception est disponible - Couche de transactions
Mémoire Centrale
BUS
GPU
DVI
Mémoire vidéo
CRT
Ramdac
- ISA
- MCA
- EISA
- VLB
- PCI
- AGP
- PCIe
37Archi. - Bus (10/10)
- interface série décomposée en plusieurs niveaux
- Couche physique
- Couche de données
- Couche de transactions
- paquets supportent adressage de 32bits / 64bits
étendu - paquets peuvent avoir des attributs (priorité,)
- encapsulation des niveaux
Mémoire Centrale
BUS
GPU
DVI
Mémoire vidéo
CRT
Ramdac
- ISA
- MCA
- EISA
- VLB
- PCI
- AGP
- PCIe
38Troisième partieAccélérateur graphique
39Accélérateur graphique
- Accélérateur 2D
- Pipeline de rendu 3D
- Accélération matérielle du pipeline 3D
40Accélérateur 2D (1/2)
- Ancêtre des accélérateurs graphiques
- cartes à coprocesseur graphique (carte
programmable) - début 90 avec TIGA (TMS34020), ou P9000 (Carte
Diamond Viper) - dépassé ensuite par les cartes accélératrices
- MAIS principe darchitecture graphique
programmable réutilisé tard en 3D
41Accélérateur 2D (2/2)
- Accélération des traitements 2Dligne,
rectangle, curseur souris, overlay, bitBLT - Décompression MPEG2 (DVD)
- Tuner TV
- Acquisition vidéo
- Cartes 2D seules nexistent plus
- Carte 3D pure (3dfx voodoo)
- Maintenant, carte 2D/3D
42Principe du rendu projectifle pipeline de rendu
3D
Vertices
Transform Lighting
Face Culling User Clip Planes Frustum
Clipping Homogenous Divide Viewport Mapping
Vertex Operations Geometric pipeline
Triangle Setup
Texturing
Fog Effects
Alpha Test
Stencil, Depth Test
Pixel Operations
Rasterization
Alpha Blending
Dithering
Channel Mask
Framebuffer
43Principe du rendu projectifle pipeline de rendu
3D
- Planter le décor Transformplacer lobjet dans
la scène par rapport à la caméra - opérations matricielles 3D
- translation, rotation, mise à léchelle,
projection
Vertices
Transform Lighting
Face Culling User Clip Planes Frustum
Clipping Homogenous Divide Viewport Mapping
Vertex Operations Geometric pipeline
Triangle Setup
- Allumer les lumières Lightingmodèle de Phong
- éclairement ambiant
- éclairement diffus
- éclairement spéculaire
Texturing
Fog Effects
Alpha Test
Stencil, Depth Test
Pixel Operations
Rasterization
Alpha Blending
Dithering
Channel Mask
Framebuffer
44Principe du rendu projectifle pipeline de rendu
3D
- Inutile de dessiner ce que lon ne voit pas
- face culling orientation arrière
- clipping hors champ
- Homogenous divideprojection 3D-gt2D
- Viewport mappingplacement dans la fenêtre
Vertices
Transform Lighting
Face Culling User Clip Planes Frustum
Clipping Homogenous Divide Viewport Mapping
Vertex Operations Geometric pipeline
Triangle Setup
Texturing
Fog Effects
Alpha Test
Stencil, Depth Test
Pixel Operations
Rasterization
Alpha Blending
Dithering
Channel Mask
Framebuffer
45Principe du rendu projectifle pipeline de rendu
3D
- Triangle setup préparation du triangle
- Délimitation du triangle par ses bords pour
chacune de ses lignes (scanline) - Interpolation bilinéaire des attributs des
sommets pour chaque pixel - Couleur
- Profondeur (z)
- Coordonnées de texture UV
Vertices
Transform Lighting
Face Culling User Clip Planes Frustum
Clipping Homogenous Divide Viewport Mapping
Vertex Operations Geometric pipeline
Triangle Setup
Texturing
Fog Effects
Alpha Test
Stencil, Depth Test
Pixel Operations
Rasterization
Alpha Blending
Dithering
Channel Mask
Framebuffer
46Principe du rendu projectifle pipeline de rendu
3D
- Texturing
- Combinaison de couleurs
- Couleur déclairement
- Couleur de la texture
- Filtrage des textures
- Bi-linéaire
- Tri-linéaire (mip mapping)
- Multitexturing
- Techniques basées sur des texturesLight
mapping, Bump mapping, Shadow mapping
Vertices
Transform Lighting
Face Culling User Clip Planes Frustum
Clipping Homogenous Divide Viewport Mapping
Vertex Operations Geometric pipeline
Triangle Setup
Texturing
Fog Effects
Fog Effects
Alpha Test
Stencil, Depth Test
Pixel Operations
Rasterization
Alpha Blending
- Fog effects brouillardAltération de la
couleur basé sur la profondeur z du pixel
Dithering
Channel Mask
Framebuffer
47Principe du rendu projectifle pipeline de rendu
3D
- Tests éliminatoires
- Alpha test seuil sur le canal alpha
- Stencil test Stencil Buffer (effets)
- Depth test Z-Buffer (test de profondeur z)
Vertices
Transform Lighting
Face Culling User Clip Planes Frustum
Clipping Homogenous Divide Viewport Mapping
Vertex Operations Geometric pipeline
- Alpha blending TransparenceMixe ancienne
couleur (Framebuffer) nouvelle couleur
Triangle Setup
Texturing
Fog Effects
- Dithering Illusion de couleur, motifUtile
pour les résolutions à faible nombre de couleur
ou palettiser
Alpha Test
Stencil, Depth Test
Pixel Operations
Rasterization
Alpha Blending
Alpha Blending
Dithering
Dithering
- Channel Mask filtre sur les canaux de couleur
(rouge, vert, bleu, alpha)
Channel Mask
Channel Mask
Framebuffer
Framebuffer
48Accélérateur 3D
- Transform Lighting (en soft) 3D Now, MMX
- 31 août 1999 GeForce256 (nVidia)
- GPU (Graphics Processing Unit)
- pipeline 100 hard (TL, culling, clipping)
Vertices
T L
Vertex Shader
Culling, Clipping
Vertex
Triangle Setup
Texturing
Reg. combiners
- Améliorations matérielles du pipeline 3D
- Registers combiners (GeForce256)
- Circuit câblé paramétrable pour le calcul de la
couleur (texture) - Obsolète
Pixel Shader
Fog
Pixel
Rasterization
Framebuffer
- Shader (Vertex Pixel) (GeForce3)Circuit
programmable remplaçant une partie du pipeline 3D
49GPU - Shader
- Architecture SIMD
- Nombre dinstructions limité
- 128 GeForce3-4 Radeon8500
- 1024 GeForceFX
- Programmation
- bas niveau (assembleur)
- haut niveau (C) oulangages dédiés (HLSL, Cg,
GLSL)
Vertices
Vertex Shader
Culling, Clipping
Vertex
Triangle Setup
Pixel Shader
Pixel
Rasterization
Framebuffer
50GPU - Vertex shader
- Architecture
- Registres temporaires
- Registres constants (mémoire)
- ALU
Vertices
Vertex Shader
Culling, Clipping
Vertex
Triangle Setup
Pixel Shader
Pixel
Rasterization
Framebuffer
51GPU - Vertex shader
- Remplace létape de TL
- Possibilités
- Position Procédurale
- Mélange de transformations (Vertex Blend)
- Mélange de maillages (Morphing)
- Déformation du maillage (Vertex Deformation)
- Eclairage par sommet (Per Vertex Lighting)
- Tissu, peau, interpolation, displacement maps
- Coordonnées de texture
- Brouillard particulier
- Taille daffichage dun point
Vertices
Vertex Shader
Culling, Clipping
Vertex
Triangle Setup
Pixel Shader
Pixel
Rasterization
Framebuffer
52GPU - Vertex shader
- Possibilités
- Mélange de transformations (Vertex Blend)
Vertices
Vertex Shader
Culling, Clipping
Vertex
Triangle Setup
Pixel Shader
Pixel
Rasterization
Framebuffer
53GPU - Vertex shader
- Possibilités
- Déformation de maillage (Vertex deformation)
Vertices
Vertex Shader
Culling, Clipping
Vertex
Triangle Setup
Pixel Shader
Pixel
Rasterization
Framebuffer
54GPU - Vertex shader
- Possibilités
- Displacement mapping
Vertices
Vertex Shader
Culling, Clipping
Triangle Setup
Pixel Shader
Rasterization
Framebuffer
55GPU Pixel shader
- Remplace létape du calcul de la couleur
- Possibilités
- Réflexion par pixel
- Illumination par pixel (phong, BRDF)
- Textures procédurales
- Effets au niveau pixel
Vertices
Vertex Shader
Culling, Clipping
Vertex
Triangle Setup
Pixel Shader
Pixel
Rasterization
Framebuffer
56GPU Pixel shader
Vertices
Vertex Shader
Culling, Clipping
Vertex
Triangle Setup
Pixel Shader
Pixel
Rasterization
Framebuffer
57GPU Pixel shader
- Exemple cartoon shading
- Produit scalaire (lumière x normale) pour
indexer une texture 1D
Vertices
Vertex Shader
Culling, Clipping
Vertex
Triangle Setup
Pixel Shader
Pixel
light
Rasterization
Framebuffer
1.0
dot product
0.0
1 dimensional texture
58GPU Pixel shader
- Exemple cartoon shading
- Zelda The Wind Maker
- Exemple cartoon shading
- A Scanner Darkly
59GPU Pixel shader
60GPU Pixel shader
61GPU - Pixel shader
- Eclairage par pixel (Per Pixel Lighting)
62GPU - Pixel shader
63Conclusion - perspectives (1/2)
- Modes graphiques assez peu de changement
(éventuellement augmentation de résolutions) - Amélioration des bus et mémoires (débit,
fréquence de fonctionnement) - Efforts concentrés sur le GPU
- devient un processeur de plus en plus
performant - effets visuels coûteux en temps-réel (lancer de
rayons) - calculs scientifiques complexes (simulation de
tissus, cheveux, ) - possibilité de mettre 2 GPU en série nvidia SLI
(Scalable Link Interface).
64Conclusion - perspectives (2/2)
- Nalu (Geforce 6800)
- simulation physique de 762 cheveux ? génération
de 4095 cheveux. - ombrage en multi-passes.
- autres possibilités
- simulation physique de tissu / fluides.
- simulation de réactions chimiques.
- voir www.gpgpu.org
65Merci ?Question ?!