Introduction aux Cartes Graphiques

Slides:



Advertisements
Présentations similaires
LES MEMOIRES INTRODUCTION UN PEU D ’HISTOIRE LES DIFFERENTES MEMOIRES
Advertisements

Plan Rappels La chaîne d’affichage Evolutions Fonctionnement de l’œil
Architecture de machines Les entrées sorties Cours
Matériels Composants physiques de l’ordinateur.
The Reyes Image Rendering Architecture
Technique des Surfels Surfels: Surface Elements as Rendering Primitives SIGGRAPH 2000 H.Pfiste, J.van Baar, M.Zwicker, M.Gross.
Ray Tracing Acceleration Techniques A Survey of Ray Tracing Acceleration Techniques James Arvo et David Kirk Ray Tracing on Programmable Graphics Hardware.
Architecture des ordinateurs
IMAGIS-GRAVIR / IMAG Rendu de forêts en temps-réel iMAGIS / GRAVIR Franck Sénégas DEA IVR Tuteur: Fabrice Neyret.
Cartes vidéos, les modèles d’aujourd’hui
L’encodage des images informatiques
TRANSMISSION DES DONNEES INFORMATIQUES
Architecture de machines La mémoire
Architecture de machines La mémoire
Présentation d’un design de carte vidéo
« ARCHITECTURE MATÉRIELLE D’UN ORDINATEUR »
Technologie et choix des constituants matériels de l`unité centrale
ARCHITECTURE DES ORDINATEURS
Conception d’une carte à microcontrôleur ARM pour le robot Amphibot II
Définition – Rôle Formes Composants Périphériques internes
Quelques définitions et précisions sur les écrans de télévision
Les différentes prises, que l’on trouve sur un ordinateur
La carte graphique.
Apprivoiser l’informatique
Les mémoires :. Mémoriser Enregistrer Conserver Restituer.
Exposé réalisé par: ABID RIM TAIEB IMEN.
Optimisation et parallélisation de code pour processeur à instructions SIMD multimedia François Ferrand.
EXPOSE SUR Les Cartes Graphiques
Représentation numérique de l’information
Images synthètiques de haute qualité
Introduction au multimédia
IFT3730 : Infographie 3D Systèmes et modèles graphiques Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.
IFT2740 : Outils de l'infographie 3D Systèmes et modèles graphiques
GIF-3002 SYSTÈMES MICRO- PROCESSEURS ET INTERFACES
L ’acquisition d ’images
IFT3355: Infographie Pipeline graphique
La numérisation de l'image N°1
Choix informatique Edition Les microprocesseurs : la puissance de calcul Le processeur est l'élément central de votre machine, il assure la partie.
Les Cartes Graphiques. Plan I / Introduction DéfinitionHistorique Les Modes II / Constitution d’une carte et son fonctionnement ProcesseurMémoire Le bus.
Les images de synthèses Duprat Anatole. Les images de synthèses consistent en la création assistée par ordinateur, d'images numériques. Il existe différentes.
Carte graphique 2D sur FPGA
COMPOSANTES INTERNES DE L’UNITE CENTRALE.
Cliquer ici Le but de ce module est de vous donner des notions d’affichage Ces notions devraient vous aider fortement à mieux comprendre par la suite.
Codage binaire A 65 Entiers positifs caractères
SURVEILLANCE VIDEO SUR RESEAU ETHERNET
Projet Lancer de Rayons
Passer directement au Quiz
EXPOSE SUR LA RAM DE 1995 A MAINTENANT
L’Audio sur PC Comparaison Numérique vs Analogique Comparaison Audio sur PC vs Hardware dédié (DSP) Rmq: beaucoup de simulitudes avec la vidéo, mais débit.
OpenGL Shading Language Introduction. But de ce cours  Non-buts  Spécialistes GLSL  Experts en GLSL  Exploration du pipeline graphique  Séparation.
Credits : Joëlle Thollot, Hector Briceño, Edmond Boyer
LES MEMOIRES.
Gestion des Périphériques
L'unité centrale est composé en générale de :
Les Cartes Graphiques.
Architecture des ordinateurs, Environnement Numérique de Travail
Les cartes graphiques Introduction Histoire Aujourd’hui
Architecture et Fonctionnement d’un GPU Géométrie Rendu.
Simulation réaliste de ruisseaux en temps réel Stage de M2R IVR 2005 Frank Rochet sous la direction de Fabrice Neyret GRAVIR / IMAG-INRIA.
Configurer des systèmes d'exploitation 243-J28-SL cours 3.
Présentation de la carte graphique
Formats, définition et résolution
Terminologie liée aux mesures
Éclairage, ombrage Fiat lux !.
Un ordinateur est une machine électronique qui fonctionne par la lecture séquentielle d'un ensemble d'instructions, organisées en programmes, qui lui.
Memoire.
Les mémoires la préparation de: chaimaa hamdou.
Systèmes à microprocesseur Les mémoires
1 Initiation à la micro-informatique Le matériel un clic pour la suite… Moniteur.
Présentation de la carte graphique
Transcription de la présentation:

Introduction aux Cartes Graphiques GRAPHIX 2006/2007

Plan du cours Modes graphiques Architecture d’une carte graphique Historique Architecture d’une carte graphique Vue globale Ramdac DVI Mémoire vidéo Bus Accélérateur graphique 2D/3D

Première partie: Modes graphiques

Modes graphiques (1/12) Première carte graphique: CGA HGC EGA VGA SVGA 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

Modes graphiques (2/12) MDAs CGA: HGC CGA EGA VGA SVGA 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

Modes graphiques (3/12) MDAs CGA HGC: EGA VGA SVGA 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

Modes 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

Modes 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

Modes graphiques (6/12) MDAs CGA HGC EGA Amélioration du VGA par IBM: 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

Modes graphiques (7/12) MDAs CGA HGC EGA Amélioration du VGA par IBM: XGA (eXtended Graphics Array): Introduit en 1990, successeur du 8514/A 512Kb/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

Modes graphiques (8/12) MDAs CGA HGC EGA Amélioration du VGA par IBM: XGA2: XGA avec fréquence plus élevées 1024x768x16bits -> 65535 couleurs 800x600x24bits -> 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

Modes 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 => 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

Modes 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

Modes 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

Modes 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

Deuxième partie: Architecture

Architecture - Vue globale Ramdac DVI Bus Mémoire DVI CRT Mémoire Centrale GPU Mémoire vidéo Ramdac Carte graphique Unité centrale Moniteurs BUS

Archi. - 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 Mémoire vidéo DVI Ramdac CRT

Archi. - 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 d’une palette de couleurs (24bits/couleur)  envoi des couleurs indexées DVI CRT Mémoire Centrale GPU Mémoire vidéo Ramdac BUS

Archi. - RAMDAC (3/4) Fonctionnement de l’œil (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 d’animation Fréquence de rafraîchissement de l’image au minimum 50Hz en entrelacé (affichage des lignes impaires puis paires) Confort des yeux pour f > 72hz Fréquence interne élevée (MHz) Accès mémoire très fréquent DVI CRT Mémoire Centrale GPU Mémoire vidéo Ramdac BUS

Archi. - 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 interne: freq. 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 DVI CRT Mémoire Centrale GPU Mémoire vidéo Ramdac BUS

Archi. - 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 DVI CRT Mémoire Centrale GPU Mémoire vidéo Ramdac BUS

Archi. - Mémoire Vidéo (1/5) Besoin d’un débit soutenu: Résolution 1024x768 en true color à 70Hz => 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, ... DVI CRT Mémoire Centrale GPU Mémoire vidéo Ramdac BUS DRAM DRAM EDO VRAM WRAM MDRAM SDRAM SGRAM RAMBUS DDR-SDRAM

Archi. - 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 DVI CRT Mémoire Centrale GPU Mémoire vidéo Ramdac BUS DRAM EDO (DRAM Extended Data Out): 400 Mo/s (inadaptée pour des fréquences > 66 MHz) accès réduit à 50-60 ns (système de cache de l’adresse 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

Archi. - Mémoire Vidéo (3/5) VRAM (Video RAM): 625 Mo/s (30% plus chère que DRAM) Jusqu’à 80 MHz - temps d’accès 20-25 ns Dual Port (grâce à un registre à décalages) DVI CRT Mémoire Centrale GPU Mémoire vidéo Ramdac BUS 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

Archi. - Mémoire Vidéo (4/5) SDRAM (Synchronous RAM): apparue en 1997 synchronisée avec le bus mémoire temps d’accès 10-12 ns Fréquence 66-133 Mhz 500, 800, 1.060 Mo/s  66, 100, 133 Mhz DVI CRT Mémoire Centrale GPU Mémoire vidéo Ramdac BUS SGDRAM (Synchronous Graphic RAM): SDRAM dédié pour la vidéo Single Port synchronisé au bus mémoire (<100MHz) techniques: Masked write: modification en 1 cycle Mode rafale (Block write): récupération/modification 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

Archi. - Mémoire Vidéo (5/5) RAMBUS: soutenue par Intel à 300 MHz, 1.2 Go/s à 400 MHz, 1.6 Go/s énorme latence DVI CRT Mémoire Centrale GPU Mémoire vidéo Ramdac BUS DDR-SDRAM (Double Data Rate SDRAM): 2 informations transférées par cycle (1 front montant / 1 front descendant) temps d’accè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

Archi. - 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 l’arrivée du 80386 Propriétés:  : facilement utilisable et peu coûteux  : bus très lent Mémoire Centrale BUS GPU Mémoire vidéo DVI Ramdac CRT ISA MCA EISA VLB PCI AGP PCIe

Archi. - Bus (2/10) MCA (Micro Channel Architecture): développé et utilisé par IBM (avec ses PS/2) incompatibilité avec l’ISA  monopole d’IBM 1er bus à 32bits - 10 Mhz (40 Mo/s) Mémoire Centrale BUS GPU Mémoire vidéo DVI 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, …) Ramdac CRT ISA MCA EISA VLB PCI AGP PCIe ISA MCA EISA VLB PCI AGP PCIe

Archi. - Bus (3/10) VLB (VESA Local Bus) : sorti en 1992 développé par ‘Video 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 Mémoire vidéo DVI Ramdac CRT ISA MCA EISA VLB PCI AGP PCIe

Archi. - Bus (4/10) PCI (Peripheral Component Interconnect ): réponse d’Intel 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 l’information 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 Mémoire vidéo DVI Ramdac CRT ISA MCA EISA VLB PCI AGP PCIe

Archi. - 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 d’une 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 d’un 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 Mémoire vidéo DVI Ramdac CRT ISA MCA EISA VLB PCI AGP PCIe

Archi. - 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ée+contrôle multiplexé… SBA: envoie donnée+contrô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 Mémoire vidéo DVI Ramdac CRT ISA MCA EISA VLB PCI AGP PCIe

Archi. - 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 d’erreurs priorité des données branchement à chaud (hot plug) gestion de l’alimentation Mémoire Centrale BUS GPU Mémoire vidéo DVI Ramdac CRT ISA MCA EISA VLB PCI AGP PCIe

Archi. - 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 Mémoire vidéo DVI Ramdac CRT ISA MCA EISA VLB PCI AGP PCIe

Archi. - Bus (9/10) interface série décomposée en plusieurs niveaux: Couche physique Couche de données: Responsable de l’intégrité des données Protocole de contrôle de flux pour s’assurer que le paquet n’est émis que lorsqu’un buffer de réception est disponible Couche de transactions Mémoire Centrale BUS GPU Mémoire vidéo DVI Ramdac CRT ISA MCA EISA VLB PCI AGP PCIe

Archi. - 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 Mémoire vidéo DVI Ramdac CRT ISA MCA EISA VLB PCI AGP PCIe Début trame Fin trame 3. Couche Physique CRC Num. Séquence 2. Couche de données Données En-tête 1.Couche de transactions

Troisième partie: Accélérateur graphique

Accélérateur graphique Accélérateur 2D Pipeline de rendu 3D Accélération matérielle du pipeline 3D

Accé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 d’architecture graphique programmable réutilisé + tard en 3D

Accélérateur 2D (2/2) Accélération des traitements 2D: ligne, rectangle, curseur souris, overlay, bitBLT Décompression MPEG2 (DVD) Tuner TV Acquisition vidéo Cartes 2D seules n’existent plus Carte 3D pure (3dfx voodoo) Maintenant, carte 2D/3D

Principe du rendu projectif: le pipeline de rendu 3D Vertices Transform & Lighting Face Culling User Clip Planes & Frustum Clipping Homogenous Divide Viewport Mapping Geometric pipeline Vertex Operations Triangle Setup Texturing Fog Effects Alpha Test Stencil, Depth Test Pixel Operations Rasterization Alpha Blending Dithering Channel Mask Framebuffer

Principe du rendu projectif: le pipeline de rendu 3D Planter le décor: ‘Transform’ placer l’objet 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 Geometric pipeline Vertex Operations Triangle Setup Allumer les lumières: ‘Lighting’ modè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

Principe du rendu projectif: le pipeline de rendu 3D Inutile de dessiner ce que l’on ne voit pas: ‘face culling’: orientation arrière ‘clipping’: hors champ ‘Homogenous divide’: projection 3D->2D ‘Viewport mapping’: placement dans la fenêtre Vertices Transform & Lighting Face Culling User Clip Planes & Frustum Clipping Homogenous Divide Viewport Mapping Geometric pipeline Vertex Operations Triangle Setup Texturing Fog Effects Alpha Test Stencil, Depth Test Pixel Operations Rasterization Alpha Blending Dithering Channel Mask Framebuffer

Principe du rendu projectif: le 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 Geometric pipeline Vertex Operations Triangle Setup Texturing Fog Effects Alpha Test Stencil, Depth Test Pixel Operations Rasterization Alpha Blending Dithering Channel Mask Framebuffer

Principe du rendu projectif: le 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 textures: Light mapping, Bump mapping, Shadow mapping… Vertices Transform & Lighting Face Culling User Clip Planes & Frustum Clipping Homogenous Divide Viewport Mapping Geometric pipeline Vertex Operations Triangle Setup Texturing Fog Effects Fog Effects Alpha Test Stencil, Depth Test Pixel Operations Rasterization Alpha Blending ‘Fog effects’: brouillard Altération de la couleur basé sur la profondeur ‘z’ du pixel Dithering Channel Mask Framebuffer

Principe du rendu projectif: le 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 Geometric pipeline Vertex Operations ‘Alpha blending’: Transparence Mixe ancienne couleur (Framebuffer) + nouvelle couleur Triangle Setup Texturing Fog Effects ‘Dithering’: Illusion de couleur, motif… Utile 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

Accélérateur 3D ‘Transform & Lighting’ (en soft): 3D Now, MMX… 31 août 1999: GeForce256 (nVidia) GPU (Graphics Processing Unit): pipeline 100% hard (T&L, culling, clipping…) Vertices Vertex Shader T & L Culling, Clipping Vertex Triangle Setup Reg. combiners Texturing Pixel Shader Améliorations matérielles du pipeline 3D: Registers combiners (GeForce256): Circuit câblé paramétrable pour le calcul de la couleur (texture…) Obsolète Fog Pixel Rasterization Framebuffer Shader (Vertex & Pixel) (GeForce3): Circuit programmable remplaçant une partie du pipeline 3D

GPU - Shader Architecture SIMD Nombre d’instructions limité 128: GeForce3-4 – Radeon8500 1024: GeForceFX Programmation: bas niveau (assembleur) haut niveau (C) ou langages dédiés (HLSL, Cg, GLSL) Vertices Vertex Shader Culling, Clipping Vertex Triangle Setup Pixel Shader Pixel Rasterization Framebuffer

GPU - Vertex shader Architecture: Registres temporaires Registres constants (mémoire) ALU Vertices Vertex Shader Culling, Clipping Vertex Triangle Setup Pixel Shader Pixel Rasterization Framebuffer

GPU - Vertex shader Remplace l’étape de T&L 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 d’affichage d’un point Vertices Vertex Shader Culling, Clipping Vertex Triangle Setup Pixel Shader Pixel Rasterization Framebuffer

GPU - Vertex shader Possibilités: Mélange de transformations (‘Vertex Blend’) Vertices Vertex Shader Culling, Clipping Vertex Triangle Setup Pixel Shader Pixel Rasterization Framebuffer

GPU - Vertex shader Possibilités: Déformation de maillage (‘Vertex deformation’) Vertices Vertex Shader Culling, Clipping Vertex Triangle Setup Pixel Shader Pixel Rasterization Framebuffer

GPU - Vertex shader Possibilités: Displacement mapping Vertices Culling, Clipping Triangle Setup Pixel Shader Rasterization Framebuffer

GPU – 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

GPU – Pixel shader Architecture: Vertex Pixel Vertices Vertex Shader Culling, Clipping Vertex Triangle Setup Pixel Shader Pixel Rasterization Framebuffer

GPU – Pixel shader Exemple: « cartoon shading » Produit scalaire (lumière x normale) pour indexer une texture 1D Vertices Vertex Shader Culling, Clipping Vertex Triangle Setup light vector normal vector Pixel Shader Pixel light Rasterization Framebuffer 0.0 dot product 1.0 1 dimensional texture

GPU – Pixel shader Exemple: « cartoon shading » A Scanner Darkly Zelda – The Wind Maker

GPU – Pixel shader Exemple: « bump mapping »

GPU – Pixel shader Effet de flamme

GPU - Pixel shader Eclairage par pixel (‘Per Pixel Lighting’)

GPU - Pixel shader Eclairage anisotropique

Conclusion - 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).

Conclusion - 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

Merci  Question ?!