56
Exposé réalisé par: ABID RIM TAIEB IMEN 1

1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

Embed Size (px)

Citation preview

Page 1: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

1

Exposé réalisé par:

ABID RIMTAIEB IMEN

Page 2: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

2

Plan1 Introduction

2 Définition d’un GPU

3 Types de GPU

4 Vue d’ensemble d’un GPU

4 Conclusion

Page 3: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

3

De nos jours, n'importe quel ordinateur disponible sur le marché dispose d'une carte graphique capable d'accélérer l'affichage 3D. Ces cartes ne pouvaient effectuer que des opérations assez basiques, ont très vite évolué vers des systèmes de plus en plus complexes, de plus en plus puissants, et de plus en plus performants.

Introduction

Page 4: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

4

GPU ? (Graphics Processing Unit) Un GPU est un microprocesseur présent sur les cartesgraphiques au sein d’un ordinateur ou d’une console de jeux vidéo.Le GPU se charge des opérations d’affichage et de manipulation de données graphiques. Les GPUs des cartes graphiques modernes (en 2009) ont une structure hautement parallèle qui les rend efficaces pour une large palette de tâches graphiques comme le rendu 3D, en Direct3D , en OpenGL, la gestion de la mémoire vidéo, traitement du signal vidéo…

Page 5: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

5

Peu d’entreprises travaillent sur la conception de tels processeurs : NVIDIA, ATI/AMD, Intel Corporation, le principal fabricant de processeurs graphiques en 2009, et S3 Graphics (de VIA Technologies) se partagent plus de de ce marché fortement disputé. Citons aussi Matrox, 3DLabs, et XGI. Des fabricants (Asus, MSI, PNY …) se chargent ensuite de proposer des cartes graphiques intégrant ces processeurs

Page 6: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

6

Il existe différents types de processeurs graphiques:Carte graphique dédiée:C’est le type le plus puissant. Machines anciennes :Le processeur est généralement situé sur une carte interfacée avec la carte mère de l’ordinateur par un port PCI Express.Ordinateurs portables: certains disposent d’une déclinaison spécifique du port PCI Express, le MXM ou Mobile PCI-Express Module)Ces cartes disposent de leur propre mémoire vive.Il existe aussi le format PCI express 16x qui permet de dépasser les fréquences et les quantités de mémoire qui étaient limitées par le CPI Express(512 Mo en PCI express ,2Go pour le PCI express 16x).La limite du PCI express 16x n’a pas encore été atteintes

Page 7: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

7

Processeurs graphiques intégrés(IGP):Ils sont intégrés dans le northbridge sur la carte mère de l’ordinateur et utilisent sa mémoire vive ou plus rarement une faible quantité de mémoire dédiée .Ils sont moins performant que ceux des cartes graphiques dédiées , mais ils sont moins couteux , plus facile a intégrer et moins gamme , utilisent cette méthode afin de réduire les couts.

Les IGP suffisent si le matériel n’est pas sollicité par les jeux modernes .Les cartes mères actuelles ont souvent un processeur graphique intégré et un (ou plusieurs)port permettant d’ajouter une carte graphique dédiée.

Page 8: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

8

Clipping

Culling

Tramage

Données Vertices

Données Primitives

TessellationVertex

Pipeline

Pixel Pipeline

Tests alpha, profondeur,

brouillon

Brouillard,Alpha blending

Vue d’ensemble

Page 9: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

9

Données Vertices

Données Primitives

Tessellation

Page 10: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

10

Tous les objets d’une image 3D sont constitués de vertex.

Depuis l'avènement des GPUs programmables (vertex shaders), il est possible d'ajouter au vertex des d’autres informations qui n'ont aucune signification particulière pour la carte graphique(Couleur diffuse et spéculaire, Normale, Coordonnées de textures, Taille du point, Poids du vertex )

Un vertex est un point dans un espace à trois dimensions avec des coordonnées des sommets des primitives (X,Y,Z,W)

Page 11: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

11

Données Vertices

Données Primitives

Tessellation

Page 12: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

12

Une primitive est une forme géométrique simple, allant du point au polygone.Les vertices permettent de former ces formes géométriques

Il existe quelques types de primitives et les plus utilisées sont : les points , les lignes, Triangle qui est le plus utilisé,(triangle fan ,triangle strip).

Dans le cas d'une primitive de type point, un seul vertex correspondra à une seule primitive. Dans le cas d'un triangle, il en faudra trois pour former la primitive.

Page 13: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

13

Données Vertices

Données Primitives

Tessellation Vertex Pipeline

Page 14: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

14

La tessellation est une technologie récente sur les cartes graphiques. Elle est basée sur l’idée de générer des vertices afin d'augmenter leur nombre et ainsi augmenter la finesse de la surface dont ils font partie.

Pour ce faire, la partie du GPU qui s'occupe de la tessellation (le tessellateur) n'a besoin que de deux informations :oLa position du vertex.oLa normale.

Le tessellateur va interpoler la position et la normale afin de générer de nouvelles vertices entre deux vertices existantes.

Page 15: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

15

Une méthode plus adéquate: faire varier le nombre de vertices afin que les objets proches en possèdent beaucoup et que les objets distants en possèdent peu. L'idéal serait augmenter le nombre de vertices afin que chaque vertex corresponde à un pixel à l'écran

Le plus simple : Le tessellateur augmente le nombre de vertices jusqu'à arriver à une certaine résolution, mais ce n'est pas très utile : les objets distants seraient très détaillés or les détails ne seraient pas visibles.

Il existe plusieurs algorithmes de tessellation:

La tessellation d'un modèle plus complexe:En plus d'interpoler les coordonnées, le tessellateur a également interpolé les normales .C'est pourquoi l'éclairage de la surface s'adapte correctement au fur et à mesure que le nombre de triangles augmente.

Page 16: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

16

C’est l’un des éléments les plus importants d'un GPU . Ce pipeline reçoit simplement les données d'un vertex pour les traiter. Il existe deux types de pipelines :les fixes. les programmables.

TessellationVertex

Pipeline

Clipping

Culling

Tramage

Page 17: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

17

Il transforme les coordonnées du vertex (sa position) à l'aide de matrices, qui définissent la translation, la rotation ou encore l'échelle à appliquer aux coordonnées. Ensuite, il peut effectuer de simples calculs au niveau de l'éclairage, en se basant sur la position de la lumière et la normale du vertex.

Le Pipeline Fixe

Page 18: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

18

Est assez proche du pipeline fixe, sauf que les développeurs peuvent remplacer le mécanisme de traitement des vertices par leurs propres programmes. Avantage principal : une énorme flexibilité au niveau des algorithmes de rendu.

Le Pipeline Programmable (Un vertex shader)

Page 19: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

19

Ils font 128 bits et stockent quatre valeurs.Ils sont assez proches des registres dédiés au SSE présents sur les processeurs de nos machines. Lorsque le vertex shader effectue des opérations sur ces registres, elles sont effectuées en parallèle sur chaque groupe de 32 bits.

Un vertex shader est composé de différents éléments:

1.Registres:

Rôle: Contenir des valeurs sous forme de 4 nombres en virgule flottante. Cas des coordonnées: chaque composante ira à sa place Cas des couleurs: le rouge correspondra à X, le vert à Y, le bleu à Z et la composante alpha à W. Certains éléments plus importants (comme le poids du vertex) pourront être répartis sur plusieurs registres.

Page 20: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

20

Registre v0-v? (Registres d'entrée)o Leur nombre est limité à 16o Ils contiennent des informations du vertex à traiter (position du vertex, couleur diffuse et spéculaire, sa normale..)pour les amener au vertex shader.

Registre r0-r?(Registres temporaires)oIls vont récupérer différentes valeurs issues des opérations qui vont être effectuées par le vertex shader.oIls peuvent contenir plus ou moins n'importe quelle information.o(minimum 12 pour les vertex shaders 2.x et 3.0).

Page 21: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

21

Registres c0-c? i0-i?, b0-b?(Registres constants)oIls permettent de définir des valeurs qui ne vont pas changer d'un vertex à l'autre, mais qui seront globales à l'exécution d'un seul et même vertex shader. oCes constantes contiennent les matrices utilisées pour transformer la position des vertices (translation, rotation, etc.), mais peuvent également contenir tout type d'information utile au vertex shader (vitesse du vent, contraintes physiques,..)

Registres s0-s3(Registres d’ échantillonage ) oIls permettent d'accéder aux données des textures. Ainsi, chaque registre représente une texture.oIls ne sont présents qu'en 4 exemplaires, ce qui permet tout de même d'accéder aux données de quatre textures différentes à partir d'un vertex shader.

Page 22: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

22

Registres a0, aL, p0 oa0 est disponible dans toutes les versions des vertex shaders C’est un registre d'adressage .oaL est apparu avec les vertex shaders 2.0 C’est un registre compteur de boucle.o p0 avec les vertex shaders 2.x. C’est le registre attribut. Il est utilisé avec les instructions permettant de faire des branchements conditionnels

Page 23: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

23

Les Boucles:qui permettent de répéter certaines instructions plusieurs fois. Cela permet également d'économiser des instructions, puisque le nombre d'instructions est limité .Les Branchements Conditionnels: permettent d'effectuer certaines instructions sous certaines conditions, réduisant cette fois-ci le nombre de shaders différents à écrire, plutôt que le nombre d'instructions.

Le GPU exécutait "bêtement" les instructions les unes après les autres. Il arrivait donc souvent que plusieurs vertex shaders offrant des fonctionnalités quasiment identiques soient créés, avec seulement une ou deux instructions différentes.Le contrôle du le flux des shaders est possible avec:

2.Instructions

Page 24: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

24

Pas mal de choses peuvent influencer les performances du vertex pipeline. Il est donc intéressant de savoir ce qui peut faire qu'une carte graphique sera plus rapide qu'une autre.

Unités de traitement des vertices(vertex units)Chaque unité représente en quelque sorte un vertex pipeline. Un vertex pipeline ne traite qu'un seul et unique vertex à la fois,Alors il faut ajouter plusieurs de ces unités pour traiter plusieurs vertices en parallèle. L'avantage est évidemment considérable, puisqu'au niveau du traitement des vertices les performances augmentent de façon pratiquement linéaire.* En effet, la carte graphique reçoit généralement un très grand nombre de vertices à la fois (plusieurs milliers, voire millions), et il est donc très simple de traiter 2, 4, 8, 12 ou 16 vertices d'un coup au lieu d'une seule

3.Performances

Page 25: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

25

Taille et vitesse du bus mémoire:la taille du bus mémoire et sa fréquence détermineront à quelle vitesse les vertices peuvent être envoyés au GPU. Il faut cependant faire attention lors de la lecture de ces informations. Ainsi, une carte disposant d'un bus 128-bit et de mémoire à 300 MHz sera plus lente qu'une carte disposant d'un bus 256-bit et de mémoire à 200 MHz. Le plus simple est de multiplier le nombre de bits par la fréquence pour obtenir une valeur permettant de donner un ordre de performance.

Nombre d'instructions d'un shader:sans tenir compte du fait que certaines instructions prennent plus de temps que d'autres, les performances d'un vertex shader diminuent très vite avec l'augmentation du nombre d'instructions.

Taille des vertices:la taille variable des vertices dépasse une certaine valeur, qui est en général spécifique à une génération de chipset, les performances seront réduites.

Page 26: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

26

Clipping

Culling

Tramage

Vertex Pipeline

Page 27: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

27

Elle permet de ne pas afficher certaines primitives invisibles.

En effet, lorsque les primitives sont affichées, les vertices sont spécifiés dans un certain ordre qui peut être dans le sens des aiguilles d'une montre ou l'inverse. Cependant, ce sens détermine la "face avant" et la "face arrière" d'une primitive.

Ceci permet d'augmenter les performances, puisque lors de l'affichage d'un modèle, l'arrière de celui-ci ne sera pas affiché.

le culling peut être désactivé, puisqu'il est parfois utile d'afficher les faces arrières des primitives.

Culling

Page 28: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

28

ClippingElle permet de diminuer la quantité de données à afficher en déterminant leur visibilité.

En fait, il existe plusieurs types de clipping.

Lorsqu'un vertex devrait être affiché "hors" de l'écran, il ne passe pas le test de clipping, et n'est donc pas affiché.

Il est possible de définir des plans de clipping qui permettront de définir une zone en dehors de laquelle les informations ne passeront pas le test de clipping.

Page 29: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

29

Tramage

Il s’agit de la construction des primitives à partir des vertices Un certain nombre de pixels sera ainsi créé

A noter que certains types d'anti-aliasing peuvent déjà être utilisés lors de cette étape, afin notamment de rendre le contour des primitives plus lisse.

Une fois ces pixels générés, leurs données sont envoyées au pixel pipeline.

Page 30: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

30

Tramage

Pixel Pipeline

Tests alpha, profondeur,

brouillon

Page 31: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

31

Tout comme le vertex pipeline, il existe deux versions du pixel pipeline:

Une version fixe comme sur les anciennes cartes graphiques

Une version programmable : les pixel shaders.

Pixel PipelinePixelles coordonnées des textures,..

Pixel complet

Page 32: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

32

Pixel Pipeline : version fixe

L’envoie et le filtrage des textures doivent est effectué par des TMU qui travaillent en conjonction avec les unités de pixel et vertex shaders.

Sa tâche consiste à appliquer les opérations de texture aux pixels.

Une carte possédant plus de TMU sera plus rapide pour traiter les informations de texture.

Unités d’applications des textures (TMU)

Page 33: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

33

Le taux de remplissage indique généralement la vitesse à laquelle un processeur graphique peut dessiner des pixels.

Il y a deux types de taux de remplissage :

1. Le taux de remplissage des pixels

C’est le nombre total de pixels que la carte peut sortir et il est calculé en multipliant le nombre d’opérations de rastérisation

(ROP) par la fréquence d’horloge.

Taux de remplissage

Page 34: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

34

2. taux de remplissage des textures

Nvidia: L’obtient en multipliant le nombre de canaux de pixels par la fréquence d’horloge.

ATI: Multiplie le nombre d’unités de calcul de texture par la fréquence d’horloge.

Ces deux méthodes sont correctes car Nvidia a une unité de texture par unité de shader ou une par canal de pixel.

Page 35: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

35

Pixel Pipeline : version programmable

Les pixel shaders sont utilisés pour toutes sortes d’effets graphiques impressionnants.

On utilise le nombre de pixel shaders d’un processeur graphique pour comparer différentes cartes graphiques au niveau de la vitesse de traitement des pixels.

Pixel pipeline :unité de Processeur de pixel

Page 36: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

36

Texkill

Elle contrôle le flux du pixel pipeline. Elle permet de "tuer" un pixel, c'est à dire d'annuler son rendu. C'est non seulement très utile pour certaines techniques d'affichage, mais cela permet également d'augmenter les performances puisque le pixel n'ira pas plus loin dans le processus de rendu.

Instructions

Ces instructions vont réaliser des opérations sur les valeurs qui leur sont fournies (par exemple une couleur). D'autres informations sont disponibles comme les coordonnées U/V des textures.

Page 37: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

37

Texld (texture load)

Permet d'aller chercher des données dans les textures.

Ces données peuvent être de simples couleurs, pour l'utilisation la plus classique des textures, ou tout autre type de données.

A noter que cette instruction a longtemps été réservée aux pixel shaders, mais qu'elle est disponible dans les vertex shaders 3.0 (c'est d'ailleurs pratiquement la seule différence avec les vertex shaders 2.x).

Page 38: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

38

Pixel Pipeline : performances

Nombre de pixel pipelines

Plus il y a de pixels à traiter, plus c'est lent.

Plus il y a de pipelines capables de les traiter, plus c'est rapide.

Les performances sont donc en grande partie définies par le nombre de pipelines disponibles. L'augmentation des performances apportées par ces pipelines supplémentaires tend même à être linéaire, les performances étant pratiquement doublées si le nombre de pipelines est doublé .

Page 39: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

39

Anti-aliasing

C’est une opération qui était gourmande lors de son apparition.

Les performances étaient grandement dégradées, et elle n'était pas vraiment utilisable.

Depuis maintenant quelques générations de cartes graphiques, c'est beaucoup mieux et l'utilisation de l'anti-aliasing peut être une alternative à l'utilisation d'une plus haute résolution.

Les performances de l'anti-aliasing ne dépendent pas réellement des spécifications de la carte graphique, et il est donc difficile de deviner à quel point les performances seront affectées

Page 40: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

40

Filtrage anisotropique

Le filtrage anisotropique est une technique permettant d'interpoler les pixels afin de lisser les textures, tout comme les filtrages bi-linéaires et tri-linéaires.

Le filtrage anisotropique a cependant une certaine influence sur les performances de la carte graphique, bien que de nos jours il ne s'agisse que de quelques images par seconde perdues (et encore).

Page 41: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

41

Pixel Pipeline

Tests alpha, profondeur,

brouillon

Brouillard,Alpha blending

Page 42: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

42

Test alpha Le test alpha permet de contrôler l'affichage des pixels d'après cette composante alpha.

Il est possible de ne pas afficher les pixels où la composante alpha est à moins de 50%, par exemple.

A noter également que l'utilisation de la transparence consomme une certaine quantité de bande passante, puisqu'il y a techniquement plus de pixels à afficher.

Page 43: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

43

Test de profondeur Le test de profondeur agit plus ou moins comme le test alpha, mais au lieu de se baser sur la composante alpha, il se base sur la profondeur du pixel.

Le test de profondeur permet surtout de ne pas avoir à afficher les pixels qui ne seront pas visibles. En effet, si un pixel est déjà présent à une certaine profondeur (chose vérifiée à l'aide du tampon de profondeur), un autre étant au même endroit mais à une plus grand profondeur n'a aucune raison d'être affiché puisqu'on ne le verra pas.

Page 44: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

44

Le Z Buffer - (blanc: proche;

noir: loin)

Page 45: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

45

Test brouillon

Le test brouillon fonctionne comme le test de profondeur, mais au lieu de tester la profondeur il va tester la valeur qui se trouve dans le tampon brouillon (stencil buffer).

Il a de nombreuses utilités, mais est principalement utilisé pour créer des ombres ou autres effets où la forme ou le contour d'un objet sont requis.

Page 46: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

46

Tests alpha, profondeur,

brouillon

Brouillard,Alpha blending

Page 47: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

47

Brouillard

C’est une technique de rendu.

C'est ce bon vieux brouillard que l'on voit au loin, pour que les objets n'apparaissent pas d'un coup.

Il est tout de même légèrement configurable, et plusieurs formules mathématiques peuvent être utilisées pour choisir où se trouve le brouillard ou sa couleur.

Page 48: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

48

Mélange alpha

Différentes formules sont disponibles, permettant de choisir ce qui sera pris en compte, à partir de deux pixels, lors du calcul du pixel qui en résultera.

Ces deux pixels sont les pixels de source et de destination (le nouveau pixel et celui qui était déjà présent).

Le mélange alpha a un impact sur les performances des cartes graphiques, mais pas un impact direct. Ainsi, n'importe quelle carte graphique peut mélanger deux pixels sans la moindre difficulté et en quelques nanosecondes.

Page 49: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

49

Rendu final

Transformation du viewport

Le viewport est une forme géométrique (généralement un rectangle) qui définit où les pixels vont se retrouver dans la fenêtre.

Ce viewport peut faire en sorte que toute la scène ne soit affichée que sur un morceau de la fenêtre, ce qui peut être utile pour les jeux où l'écran est partagé en deux.

Page 50: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

50

Anti-aliasing

L’Aliasing est un terme qui décrit des motifs crénelés ou dont on voit les blocs dans l’affichage des images numériques.

Dans le cas du graphisme, cela fait référence à l’effet d’escalier sur les bords anguleux lors de l’affichage à l’écran.

L’anti-aliasing ('AA' en abrégé) est une fonction graphique qui diminue cet effet. Cela dit, comme les calculs d’anti-aliasing utilisent une grosse part de la puissance du processeur graphique, l’activer provoque une diminution significative du débit d’images.

Page 51: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

51

Unités de shader / vertex pipeline.

Performances globales

Les unités de shader s'occupent d'exécuter les vertex et pixel shaders.

Lorsque des vertices sont envoyés à la carte graphique, ce n'est pas un seul à la fois, mais bien des milliers.

Il est donc très simple d'effectuer leur traitement en parallèle. Du coup, plus y a d'unités de shader, plus vite les vertices sont traités.

Page 52: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

52

Unités de texture / pixel pipelines

Les unités de texture s'occupent de gérer les textures.

Chaque unité peut contenir une texture. Lors de l'affichage de primitives possédant plus d'une texture, il faut autant d'unités de texture qu'il y aura de textures sur la primitive.

Cependant, si il y en a moins (par exemple, il y a quatre unités de texture et six textures doivent être affichées), la primitive devra être affichée une première fois avec les quatre premières textures, puis une seconde fois avec les deux textures restantes, ce qui dégrade grandement les performances.

Page 53: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

53

conclusionAugmentations de la complexité et des performances

Unités de Texture et de Shader

Un autre facteur est l'augmentation des unités de texture ou de shader.

La génération qui va bientôt être disponible disposera de jusqu'à 32

unités de shader. La GeForce 3 n'en avait qu'une. Ce n'est peut-être pas la façon la plus élégante

d'augmenter les performances d'une carte graphique, mais c'est

certainement une des plus efficaces.

Nouveau Shader Model

Cette augmentation de complexité se caractérise principalement par l'augmentation des possibilités apportées par chaque nouveau

shader model. Le shader model 4.0 est en chemin, et apporte une

nouvelle fois son lot de nouveautés, notamment la généralisation du

système des shaders (ainsi, il n'y aura plus de différence entre un vertex

shader et un pixel shader, du point de vue des fonctionnalités).

Page 54: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

54

Améliorations du rendu

Les Geometry Shaders

 Ces shaders permettent de créer des vertices de façon

programmable, mais sans aucune limitation. Il est même possible

d'envoyer des vertices à la carte graphique, de leur appliquer un

vertex shader (modifiant les vertices), d'appliquer un geometry

shader sur les vertices ainsi modifées, et d'appliquer à

nouveau un vertex shader. Les possibilités sont donc énormes.

Parfait pour le SLI

les nouvelles fonctionnalités de DirectX - notamment la mémoire

vidéo virtuelle - ont de nombreux avantages lorsqu'il

s'agit de découper l'affichage en plusieurs morceaux, chaque morceau pouvant ainsi être traité par un GPU différent.

Page 56: 1. Plan 1 Introduction 2 Définition dun GPU 3 Types de GPU 4 Vue densemble dun GPU 4 Conclusion 2

56

Merci de votre attention