Les cartes accélératrices 2D

Les cartes 2D n'ont pas changé de principe depuis leur création. Chaque puce possède de nombreux circuits qui permettent d'exécuter de nombreuses fonctions:

Ainsi, les performances des cartes 2D n'évoluent plus depuis quelques temps.

Leurs performances sont tributaires du type de mémoire utilisée sur la carte (les mémoires SGRAM ou WRAM, mémoires vidéo spécifiques à 10 ns, donnent des résultats bien meilleurs que la mémoire EDO (60 ns))

La fréquence du RAM-DAC (RAM Digital Analogic Converter), ainsi que la quantité de mémoire vidéo ne permettent en rien d'avoir de meilleures performances, elles permettent juste d'avoir un meilleur taux de rafraichissement (nombre d'images par seconde) et de pouvoir accéder à des résolutions plus grandes.

Les cartes accélératrices 3D

Le domaine de la 3D est beaucoup plus récent, donc plus porteur. On arrive à des puissances de calculs sur PC supérieures à celles de certaines stations de travail.

Le calcul d'une scène 3D est un processus qui se décompose grossièrement en quatre étapes:

Ainsi, plus la carte accéleratrice 3D calcule elle-même ces étapes, plus l'affichage est rapide. Les premières puces n'effectuaient que le rendering, laissant le processeur s'occuper du reste.
Depuis, les cartes possèdent un "setup engine" qui prend en charge les deux dernières étapes.
A titre d'exemple, un Pentium II à 266 Mhz qui calcule les trois premières étapes peut calculer 350 000 polygones par secondes, lorsqu'il n'en calcule que deux, il atteint 750 000 polygones par seconde.
Cela montre à quel point ces cartes déchargent le processeur.

Le type de bus est lui aussi déterminant. Alors que le bus AGP n'apporte aucune amélioration dans le domaine de la 2D, les cartes utilisant ce bus plutôt que le bus PCI sont beaucoup plus performantes. Cela s'explique par le fait que le bus AGP est directement relié à la mémoire vive, ce qui lui offre une bande passante beaucoup plus grande que le bus PCI.

Ces produits de haute technologie ont maintenant besoin de la même qualité de fabrication que les processeurs, ainsi que des gravures allant de 0.35 µm à 0.25 µ:m.

Glossaire des fonctions accélératrices 3D et 2D

Terme Définition
2D Graphics Affiche une représentation d'une scène selon 2 axes de référence (x et y)
3D Graphics Affiche une représentation d'une scène selon 3 axes de référence (x,y, et z)
Alpha blending Le monde est composé d'objets opaques, translucides et transparents. L'alpha blending est une manière d'ajouter des informations de transparence à des objets translucides. Cela est fait en effectuant un rendu des polygones a travers des masques dont la densité est proportionnelle à la transparence des objets. La couleur du pixel résultant est une combinaison de la couleur du premier plan et de la couleur de l'arrière-plan. L'alpha a généralement une valeur comprise entre 0 et 1 calculée de la manière suivante:
nouveau pixel=(alpha)*(couleur du premier pixel)+(1-alpha)*(couleur du second pixel)
Alpha buffer C'est un canal supplémentaire pour stocker l'information de transparence (Rouge-Vert-Bleu-Transparence).
Anti-aliasing appelé aussi anti-crénelage) Technique permettant de faire apparaitre les pixels de façon moins crénelée.
Effets atmosphérique Effets tels que le brouillard ou bien l'effet de distance, qui améliorent le rendu d'un environnement.
Bitmap Image pixel par pixel
Bilinear filtering Permet de fluidifier le passage d'un pixel d'un endroit à un autre (lors d'une rotation par exemple)
BitBLT C'est l'une des fonctions d'accélération les plus importantes, elle permet de simplifier le déplacement d'un bloc de données, en prenant en compte les particularités de la mémoire-vidéo. Elle est par exemple utilisée lors du déplacement d'une fenêtre
Blending Combinaison de deux images en les ajoutant bit-à-bit
Bus Mastering Une fonction du bus PCI permettant de recevoir directement des informations de la mémoire sans transiter par le processeur
Correction de perspective Une méthode pour faire du mappage (enveloppage) avec des textures (texture mapping). Elle prend en compte la valeur de Z pour mapper les polygones. Lorsqu'un objet s'éloigne de l'objectif, il apparaît plus petit en hauteur et en largeur, la correction de perspective consiste à dire que le taux de changement dans les pixels de la texture est proportionnel à la profondeur.
Depth Cueing Baisse l'intensité des objets s'éloignant de l'objectif
Dithering Permet d'archiver des images de qualité 24-bit dans des tampons plus petits (8 ou 16 bits). Le dithering utilise deux couleurs pour en créer une seule
Double buffering Une méthode utilisant deux tampons, une pour l'affichage, l'autre pour le calcul du rendu, ainsi lorsque le rendu est fait les deux tampons sont échangés.
Flat shading ou Constant shading Assigne une couleur uniforme sur un polygone. L'objet ainsi rendu apparait de façon facettisée.
Fog Utilise la fonction blending pour un objet avec une couleur fixe (plus il s'éloigne de l'objectif, plus cette fonction est utilisée)
Gamma Les caractéristiques d'un affichage utilisant des phosphores sont non-linéaires: un petit changement de la tension à basse tension crée un changement dans l'affichage au niveau de la brillance, ce même changement à plus haute tension ne donnera pas la même magnitude de brillance. La différence entre ce qui est attendu et ce qui est mesuré est appelée Gamma
Gamma Correction Avant d'être affichées, les données doivent être corrigées pour compenser le Gamma
Gouraud Shading (lissage Gouraud) Algorithme (portant le nom du français qui l'a inventé) permettant un lissage des couleurs par interpolation. Il assigne une couleur à chaque pixel d'un polygone en se basant sur une interpolation de ses arêtes, il simule l'apparence de surfaces plastiques ou métalliques.
Interpolation Façon mathématique d régénérer des informations manquantes ou endommagées. Lorsqu'on agrandit une image par exemple, les pixels manquants sont régénérés par interpolation.
Line Buffer C'est un tampon fait pour mémoriser une ligne vidéo
Lissage Gouraud Algorithme (portant le nom du français qui l'a inventé) permettant un lissage des couleurs par interpolation. Il assigne une couleur à chaque pixel d'un polygone en se basant sur une interpolation de ses arêtes, il simule l'apparence de surfaces plastiques ou métalliques.
Lissage Phong Algorithme (portant le nom de Phong Bui-Tong) permettant un lissage des couleurs en calculant le taux de lumière en de nombreux points d'une surface, et en changeant la couleur des pixels en fonction de la valeur. Il est plus gourmand en ressources que le lissage Gouraud
MIP Mapping C'est un mot provenant du latin "Multum in Parvum" qui signifie "Plusieurs en un". Cette méthode permet d'appliquer des textures de différentes résolutions pour des objets d'une même image, selon leur taille et leur distance. Cela permet entre autre de mettre des textures de plus hautes résolutions lorsqu'on se rapporche d'un objet.
Projection C'est le fait de réduire un espace en 3-Dimension en un espace en 2-Dimension
Rasterisation Tranforme une image en pixels
Rendu (Rendering) C'est le fait de créer des images réalistiques sur un écran en utilisant des modèles mathématiques pour le lissage, les couleurs ...
Rendering engine Partie matérielle ou logicielle chargée de calculer les primitives 3D (Généralement des triangles)
Tesselation ou facettisation Le fait de calculer des graphiques en 3D peut-être divisé en 3 parties: la facettisation, la géométrie et le rendu. La facettisation est la partie consistant à découper une surface en plus petites formes, en la découpant (souvent en triangles ou en quadrilatères)
Texture Mapping Consiste à stocker des images constituées des pixels (texels), puis à envelopper des objets 3D de cette texture pour obtenir une représentation plus réaliste des objets
Tri-linear filtering Basé sur le principe du filtrage bilinéaire, le filtrage trilinéaire consiste à faire une moyenne de deux niveaux de filtrage bilinéaire.
Z-buffer Partie de la mémoire qui stocke la distance de chaque pixel à l'objectif. Lorsque les objets sont rendus à l'écran, le rendering engine doit supprimer les surfaces cachées.
Z-buffering C'est le fait de supprimer les faces cachées en utilisant les valeurs stockées dans le Z-buffer