Obligement - L'Amiga au maximum

Lundi 20 novembre 2017 - 01:11  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


Dossier : Les cartes graphiques
(Article écrit par Jean Philippe - juillet 2002)


La carte vidéo appelée aussi carte graphique traite toutes les données concernant l'affichage et envoie le résultat au moniteur par un signal analogique. Au début la carte vidéo se chargeait uniquement d'afficher une image formée de points colorés. De nos jours les derniers modèles apparus se chargent maintenant de calculer et d'afficher des images de synthèse d'une grande complexité. La qualité et la rapidité de l'affichage dépendent essentiellement de la carte vidéo. Plus la carte graphique sera performante plus le processeur principal sera déchargé et pourra exécuter d'autres tâches. Cette dernière est donc très importante, en particulier dans les domaines du graphisme et du jeu. Actuellement, les principaux critères de comparaisons entre les cartes sont la qualité et la rapidité d'affichage en 3D. Une carte graphique peut s'assimiler à un micro-ordinateur. Comme un ordinateur la carte graphique utilise son propre circuit d'horloge pour synchroniser chacune des opérations. Elle possède aussi son propre processeur et finalement, elle utilise aussi sa propre banque de mémoire. Dans un premier temps, nous étudierons le côté matériel d'une carte vidéo, c'est-à-dire l'ensemble des composants constituant cette dernière. Puis dans un second temps, nous étudierons les différentes fonctions gérées par la carte. Enfin, dans un troisième temps, nous nous intéresserons au côté logiciel permettant d'utiliser la carte avec un ordinateur.

1. Les composants d'une carte graphique.

Le but de cette partie est d'étudier les différents composants d'une carte graphique. Où se situent-ils et quelles en sont les différentes fonctions ? La figure 1 ci-dessous nous montre une photographie d'une carte graphique tel que nous pouvons la trouver séparée de l'ordinateur. Nous pouvons déjà avoir un aperçu des différents constituants ainsi que leurs emplacements sur la carte. Chaque composant joue un rôle spécifique pour le bon fonctionnement de la carte.

Composants carte graphique
Figure 1 : Principaux composants d'une carte graphique

Au centre de la carte, nous retrouvons généralement le processeur graphique. Sur les bords, se placent les modules de mémoire. A côté du processeur, il y a le "vidéo encoder» aussi connu sous le nom de RAMDAC*. Comme pour un ordinateur, l'ensemble des composants est relié grâce à un bus. Pour une carte graphique, ce bus peut être de type AGP* ou PCI*. Enfin, nous pouvons constater la présence d'un certain nombre de connecteurs. Ces derniers donnent vers l'extérieur de la carte et sont placés sur une sorte de réglette métallique.

Maintenant que nous avons ciblé à peu près l'emplacement des constituants de la carte, voyons plus en détails les fonctions accomplies par ces derniers.

1.1 Le processeur graphique

Sur une carte vidéo, le processeur est aussi appelé "chipset" (jeu de composants) et peut être considéré comme le coeur de la carte. Il est composé d'une multitude de transistors (des millions voir même une dizaine de millions) servant aussi bien à la partie traitement 2D et 3D que la partie vidéo. De la qualité de celui-ci, dépendent les performances de la carte. Sous ce terme se cache l'ensemble des processeurs de cartes graphiques qui vont effectuer les calculs nécessaires à la création de l'image qui sera affichée. En fait, tout comme sur la carte mère de l'ordinateur, le jeu de composants graphiques contrôle chacune des fonctions essentielles de la carte vidéo.

On détermine le niveau de qualité d'un jeu de composants graphiques en regardant sa largeur maximum de bande passante. La largeur de bande est tout simplement l'indication de la vitesse de circulation des données qui y transitent. L'ordre de grandeur de cette bande passante est exprimé par le nombre de Gigaoctets traités en une seconde. De nos jours, deux types de jeux de composants graphiques sont utilisés : les jeux de composants dits de 256 bits et ceux en 128 bits. Les jeux de composants 128 bits étant les plus anciens.

Comme nous l'avons dit précédemment, il s'agit du coeur de la carte graphique. C'est-à-dire que c'est au niveau de ce composant que sont traités tous les calculs. Ces calculs étant de plus en plus complexes, des fonctions spécifiques sont implantées dans le jeu de composants. On parle même d'algorithmes au lieu de fonctions et d'accélérateur graphique au lieu de "chipset". Nous verrons dans la deuxième partie quelles sont ces fonctions et à quoi servent-elles.

Un processeur graphique peut alors se caractériser par sa capacité à effectuer des calculs plus ou moins complexes en un minimum de temps. Lors de l'achat d'une carte vidéo, nous pouvons parfois lire sur la boîte "moteur de calcul capable de reproduire jusqu'à 6 millions de triangles par seconde". Ceci peut être un indicateur relativement intéressant concernant la puissance du processeur graphique. Plus ce nombre est grand, plus la carte est puissante. Nous verrons par la suite en quoi ces calculs portent sur le traitement du nombre de triangles par seconde. Comme pour le processeur central de l'ordinateur, le processeur graphique est cadencé à une certaine vitesse. Cette vitesse s'exprime par une fréquence en MHz. Plus cette fréquence sera élevée, plus les informations seront traitées rapidement et plus l'affichage final sera rapide. Cependant, il faut noter que faire fonctionner des processeurs graphiques à une fréquence élevée implique un échauffement certain de ces derniers.

Parfois, certains jeux de composants peuvent monter en température jusqu'à 100°C. Afin de préserver celui-ci, il n'est pas rare de rencontrer un dissipateur thermique placé sur l'accélérateur graphique. Parfois, un simple dissipateur ne suffit pas et dans ce cas, on le remplace par un véritable ventilateur afin de limiter l'augmentation de la température et de garder celle-ci constante.

Dans l'annexe 1, nous pouvons retrouver un récapitulatif des cartes graphiques existantes. Nous y retrouvons les différents jeux de composants graphiques équipant les cartes vidéo ainsi que les principales fonctions gérées par ces derniers. D'autres renseignement portant sur les autres composants de la carte sont également disponibles.

1.2 Le RAMDAC

Le RAMDAC (Random Access Memory Digital-Analog Converter) de la carte graphique est un des éléments les plus importants de ce composant. C'est lui qui déterminera en grande partie les performances de la carte, dont ses possibilités en matière de résolution d'affichage et de profondeur de couleur. Plus la vitesse du RAMDAC (exprimée en MHz) est grande, plus les capacités de la carte seront importantes.

Le rôle du RAMDAC est essentiel pour l'affichage. En effet, les informations qui transitent dans l'ordinateur sont codées sous forme binaire, autrement dit, de façon numérique. Or, les moniteurs à tube cathodique sont incapables de comprendre les données binaires. Ils ne peuvent afficher que des données analogiques. C'est pourquoi il faut qu'entre la carte vidéo (signaux numériques) et le moniteur (signaux analogiques) une conversion des données soit faite : c'est exactement ici qu'intervient le RAMDAC. C'est lui qui est chargé de cette transformation du signal. Les performances du RAMDAC doivent être à la hauteur des possibilités de l'affichage, qu'il s'agisse de la carte vidéo ou du moniteur. Un RAMDAC trop faible limitera les performances de l'un ou de l'autre. Plus la fréquence sera élevée, plus l'affichage pourra être effectué à une résolution importante en conservant un taux de rafraîchissement satisfaisant. La plupart des cartes actuelles ont un RAMDAC cadencé à 250 MHz ce qui est déjà très suffisant. Les modèles les plus récents montent jusqu'à 350 MHz.

Dans la figure 2, nous pouvons mieux comprendre le rôle du RAMDAC. On voit bien qu'il reçoit un signal numérique stocké en mémoire puis converti celui-ci en un signal analogique qui est envoyé vers le moniteur.

RAMDAC
Figure 2 : Rôle du RAMDAC

1.3 La mémoire vidéo

La mémoire vidéo est installée sur la carte graphique et sa nature est quelque peu différente de la mémoire principale installée sur la carte mère d'un ordinateur. La mémoire de la carte graphique est le plus souvent du type "Dual Ported" ce qui signifie que ce type de mémoire peut être accédé simultanément en lecture et en écriture. Les composants graphiques de la carte accédant à la mémoire vidéo sont le jeu de composants graphiques et le RAMDAC.

La mémoire embarquée sur la carte graphique sert avant tout à stocker les images calculées par la carte en attendant qu'elles soient affichées par le moniteur. Elle détermine ainsi la quantité de couleur et le nombre de points affichables. C'est également là que sont stockées toutes les textures. Plus la résolution sera grande, plus il faudra de mémoire. Par exemple, 16 Mo de mémoire suffisent amplement pour stocker une scène 3D en 1280x1024 en 16 bits.

Explications de la résolution "1280x1024 16 bits" et nécessitée de la mémoire :

Pour afficher une image, chaque point est composé de trois composantes colorées, chacune étant codée en un nombre de couleur correspondant au nombre de bits qui la caractérise ( 8 bits pour 256 couleurs = 2 puissance 8 ; 16 bits pour 65000 couleurs = 2 puissance 16 ; 24 bits pour 16 millions de couleurs). Par exemple, pour afficher une image de 65000 couleurs en 1280x1024, il faut 1280x1024x16x3, soit 63 millions de bits soit 7,8 Mo de mémoire. On comprend mieux qu'une grande quantité de mémoire est nécessaire pour monter en haute résolution.

D'autre part, les performances de la carte seront en outre liées au type de mémoire. On trouve de la mémoire SDRAM, SGRAM ou DDR-SDRAM. La différence entre ces différentes mémoires est essentiellement située au niveau de la vitesse et à la manière dont sont écrites et lues les informations. La mémoire DDR-SDRAM est la plus performante suivie de la SGRAM puis de la SDRAM (données de 2002).

1.4 Le bus (PCI et AGP)

Pour communiquer avec l'ordinateur, la carte graphique reçoit et transmet les informations par un BUS*. Durant plusieurs années la carte utilisait le bus PCI , mais il a été remplacé par le bus AGP qui a fait son apparition il y a environ trois ans. Le bus PCI offre une bande passante totale de 132 Mo/s. Cette bande est répartie entre tous les périphériques PCI : le contrôleur de disque dur, la carte réseau, la carte graphique, la carte SCSI, la carte son PCI, etc. Les 132 Mo/s du PCI constituaient un goulet d'étranglement pour la carte. Intel a donc créé le bus AGP, un bus qui lie le processeur et la carte graphique. Ce bus cadencé à 66 MHz offre une bande passante de 528 Mo/s en pointe dans le mode AGP 2X et 1 Go/s pour l'AGP 4X.

Comparons les performances du bus PCI et AGP en analysant le parcours emprunté par une information à traiter :

Dans un système PCI, la texture passe du disque dur à la mémoire centrale, transite via le jeu de composants sous le contrôle du processeur puis repart par le bus PCI vers la mémoire tampon (buffer) de la carte graphique. Dans le cas d'une carte graphique PCI bus master, le transfert peut se faire sans intervention du processeur. Finalement, elle arrive au circuit graphique où elle est plaquée sur son polygone avant d'être affichée à l'écran. Cette longue procédure vient du fait que les cartes PCI ne savent texturer que depuis leur propre mémoire (figure 3).

Texture dans bus PCI
Figure 3 : cheminement d'une texture par le bus PCI

Les cartes AGP sont bien plus performantes, il suffit de faire transiter la texture du disque dur vers la mémoire centrale. Le jeu de composants graphiques AGP peut alors directement effectuer des opérations en mémoire centrale (figure 4).

Texture dans bus AGP
Figure 4 : cheminement d'une texture par le bus AGP

On comprend mieux pourquoi le bus AGP est utilisé par la quasi-totalité des cartes graphiques actuelles. Il permet une liaison directe entre la carte graphique, le processeur et la mémoire vive et offre une bande passante bien plus élevée que le bus PCI. Le gain de performances est énorme et certaines cartes AGP ont des performances près de 20 fois plus importantes que le même modèle en version PCI.

1.5 Le taux de rafraîchissement

Le taux de rafraîchissement est l'indication du nombre de fois où l'image est entièrement régénérée sur l'écran de moniteur durant une période de temps d'une seconde. Par exemple, si nous choisissons une vitesse de régénération de 75 Hz cela signifiera que l'image complète de l'écran du moniteur sera totalement régénérée 75 fois dans une période d'une seconde. Il est conseillé d'utiliser un taux de rafraîchissement élevé afin d'éviter l'effet de "scintillement" qui se produit généralement aux vitesses les plus basses tel que 60Hz par exemple. Ce taux de rafraîchissement dépend de la carte graphique. Les cartes les plus récentes sont capables de gérer des taux de rafraîchissement allant jusqu'à 150 Hz. Cependant, il faut bien vérifier que le moniteur soit capable de recevoir un tel taux de rafraîchissement. Sans quoi, le moniteur pourrait bien griller ou, en tout cas, avoir une espérance de vie amoindrie.

1.6 Sorties et connecteurs

Sur une carte graphique, il existe différentes sorties se caractérisant par des connecteurs. Ces connecteurs ont pour but d'offrir des possibilités d'extensions de la carte. Ils peuvent jouer le rôle de récepteur (entrée) ou bien d'émetteur (sortie). D'une carte à l'autre, le nombre de ces connecteurs peut varier. Sur toutes les cartes, nous pouvons retrouver un connecteur commun dit VGA*. Il est doté de 15 broches et sert principalement à relier la carte graphique à un moniteur à tube cathodique ou bien à un écran plat analogique. Actuellement, environ 85% des cartes vidéo comporte uniquement ce connecteur.

Les autres connecteurs que nous allons étudier sont des connecteurs optionnels pouvant jouer des rôles d'entrée ou plus généralement de sortie. Malheureusement, puisque ces connecteurs offrent beaucoup plus de possibilités et de fonctions, le prix des cartes intégrant ces connecteurs est beaucoup plus cher qu'une carte graphique normale dépourvue de ces derniers.

Connecteur vidéo : sortie
Il permet de relier la carte graphique à un téléviseur ou à un magnétoscope. Cela se révèle surtout utile pour visionner les DVD vidéo, la qualité d'affichage d'un téléviseur étant peu adapté aux applications bureautiques ou aux jeux. Ce connecteur peut se trouver sous la forme d'une prise femelle SVHS (S-Video) ou bien RCA (Composite).

Connecteur DVI : sortie
Récemment implémenté sur les cartes graphiques haut de gamme, il est destiné aux écrans plats numériques. Sa présence évite d'avoir recours à une opération de conversion numérique-analogique, qui entraîne une baisse de la qualité d'image.

Connecteur VGA : sortie
Sur certains modèles de carte, nous pouvons retrouver un deuxième connecteur VGA pour relier un deuxième écran à la carte.

Connecteur vidéo : entrée
Comme pour les connecteurs vidéo de sortie, ils se présentent sous forme de prises femelle SVHS (S-Video) ou bien RCA (Composite). Cette fois-ci, il ont pour fonction de recevoir un signal en provenance d'un magnétoscope ou bien d'une caméra par exemple.

Connecteur interne d'extension :
Ce type de connecteur est accessible uniquement à la surface de la carte. Il sert principalement à connecter une carte d'extension pour permettre une mise à jour éventuelle. Cette extension est présente sur toutes les cartes graphiques.

2. Les fonctions d'une carte graphique.

2.1 La 2D

L'affichage en deux dimensions est le plus courant. C'est l'affichage de base. Il est utilisé par MS-DOS, Windows et par tous les logiciels fonctionnant sous un système d'exploitation. La 2D consiste tout simplement à la représentation d'une scène selon 2 axes de référence (x et y). Cela peut aller d'une simple image à un ensemble d'images nécessitant des calculs assez complexes.

Sous Windows, l'affichage est principalement en 2D (fenêtre, curseur de souris, etc.). De nos jours tous les processeurs graphiques intègrent les primitives de Windows. C'est-à-dire qu'ils sont capables avec un minimum d'instructions de créer une fenêtre bien précise en un minimum de temps. A titre d'information, les premières cartes graphiques ne géraient pas l'affichage 2D sous Windows. Les fenêtres et curseurs étaient alors calculés de manière logicielle, ce qui prenait parfois beaucoup de temps. Heureusement, dans les nouveaux chips graphiques, toutes les fonctions 2D de Windows sont implémentées de manière matérielle.

La partie 2D d'une carte graphique peut se résumer à l'ensemble des calculs et du temps d'exécution pour traiter une scène en 2D. Ce traitement peut aller du simple affichage d'une image à la manipulation ou transformation d'images plus complexes.

2.2 La 3D

Aujourd'hui, la 3D est le domaine à la mode dans le monde informatique. L'essor actuel de la 3D se manifeste dans de nombreux domaines et en particulier dans les logiciels de jeu. A travers ces jeux, nous sommes amenés à manipuler des objets et des personnages virtuels qui évoluent dans des décors ou des paysages fictifs. Cela ressemble à la réalité, et pourtant chaque image de ces séquences animées est calculée en temps réel par l'ordinateur. Les technologies utilisées pour créer cette impression de réalisme des décors, des objets, des personnages sont en fait très élaborées. L'ordinateur doit effectuer une masse énorme de calculs pour produire ces images en 3D à une cadence suffisante de 25 images par seconde (fluidité d'image de la télévision). Mais pour soutenir ce rythme, le processeur de l'ordinateur ne suffit pas. Il doit être aidé par un calculateur spécialisé, appelé accélérateur graphique (jeu de composants de la carte graphique).

A l'intérieur de cet accélérateur graphique, plusieurs fonctions 3D ont été implantées. Ces fonctions ont pour but de faciliter les calculs d'images 3D. Afin de comprendre le rôle et surtout la nécessité de ces fonctions, voyons d'où proviennent tous ces calculs.

Le procédé 3D consiste à créer une forme à l'aide de polygones, puis d'appliquer une image (la texture) sur ces polygones, et enfin d'y appliquer des effets, comme la transparence, l'effet brouillard, le lissage des angles, etc. Le but est de rendre une image qui soit la plus proche possible de la réalité, avec un effet de profondeur (la perspective) qui lui donnera l'aspect 3D, de la même façon que nos yeux voient les objets dans la réalité. Il existe plusieurs méthodes de représentation visuelle des objets en 3D.

Premièrement, les personnages, les objets et les décors des jeux 3D sont constitués de points (repérés dans l'espace 3D) reliés entre eux par des segments de droite qui délimitent des polygones. La représentation visuelle la plus simple des maillages polygonaux est de type "fil de fer" (figure 5).

Dans ce mode, seul le squelette de l'objet apparaît et il n'y a pas de notion de surface. Une image 3D est donc à la base qu'un ensemble de triangles formant des polygones. Sur certaines boîtes de cartes graphiques nous pouvons voir le nombre de polygones susceptible d'être calculé par l'accélérateur graphique.

Deuxièmement, le mode de représentation en volume le plus simple attribue une couleur à chaque polygone et fait disparaître de l'affichage toutes les surfaces qui ne sont pas visibles pour l'observateur. Le rendu est alors nettement plus réaliste que le volume fil de fer. Cependant, il conserve tout de fois un aspect anguleux, avec des facettes, qui trahit l'origine polygonale du modèle (figure 5).

Troisièmement, le lissage dit de Gouraud vient résoudre le précédent problème. Il fait disparaître les facettes et donne l'impression d'arrondir les angles. A partir des valeurs déterminées pour les sommets de chaque polygone, la couleur de chaque pixel est calculée par interpolation linéaire. Les jonctions entre les polygones deviennent alors invisibles, et les maillages, même grossiers apparaissent lissés (figure 5).

Enfin, l'application de textures bitmap (images en 2D plaquées sur le volume en 3D) améliore nettement l'aspect réaliste de l'objet représenté. Le nombre de polygones ne change pas, mais la texture apporte des détails et des couleurs. C'est l'emploi de nombreuses textures qui explique la qualité graphique des jeux 3D actuels, car en fin de compte les modèles polygonaux utilisés sont en fait grossier.


modélisation d'une image
Figure 5 : différentes étapes de modélisation d'une image 3D

Comme nous venons de le voir, pour générer une image en 3D, il faut plusieurs étapes. C'est de la dernière étape, application de texture, qu'est née une multitude de fonctions 3D. Le rôle des textures est essentiel dans toute représentation en trois dimensions un tant soit peu réaliste.

De nombreux algorithmes ont été développés pour en tirer meilleur parti. C'est surtout au niveau de cette étape que l'ensemble des calculs seront effectués. Il existe une multitude de techniques pour plaquer une texture. On peut plaquer sur un objet 3D différents types d'informations : couleurs, luminosité, réflexion, reliefs. Dans la pratique, pour obtenir l'effet final, plusieurs textures sont empilées sur un même objet.

La capacité à effectuer plusieurs passes de placage en un cycle horloge est essentielle pour une carte 3D de nouvelle génération. Voici quelques fonctions 3D primordiales gérées par les accélérateurs graphiques récents (à partir de 2000). L'ensemble de ces fonctions a pour objectif premier de rendre plus réel un objet modélisé en 3D.

Alpha Blending :
Cette fonction permet de faire varier le degré d'opacité ou de transparence d'un pixel. Il est utilisé pour les effets de brouillard, et sert aussi à simuler des vitres et des liquides.

Anticrénelage :
Cette fonction permet d'atténuer, sinon de supprimer les effets d'escalier apparaissant sur les bords des objets en 3D. Elle peut être réalisée sur une partie ou sur la totalité de l'image (on parle alors de "full scene antialiasing"). Cette fonction est extrêmement gourmande en calculs.

Filtrage bilinéaire :
C'est un procédé de filtrage qui permet de recréer un pixel à partir des 4 texels (éléments de base d'une texture) adjacents. Il est particulièrement utile lorsque des objets vus en gros plan perdent de leur définition. Cette fonction a été améliorée par le filtrage trilinéaire (Trilinear Filtering) qui utilise 8 texels pour créer un pixel.

Bump Mapping :
Il s'agit d'un effet visuel qui ajoute du relief à une texture en jouant sur la disposition des ombres et des lumières. Il permet d'augmenter le réalisme d'un objet en 3D sans pour autant accroître la complexité.

S3TC ou DXTC :
Cette technique consiste à appliquer à une texture un algorithme permettant de limiter l'espace nécessaire à son stockage. Cette procédure est un double avantage : la texture est plus vite envoyée vers le circuit graphique car elle occupe moins de place et le réalisme d'une scène est accru grâce à des images plus détaillées et de meilleure définition.

Multitexturage :
Elle est très utilisée dans les jeux. Cette technique applique plusieurs textures à un même objet au même moment, permettant l'ajout d'effets de lumière et de reflets. Il s'agit d'un procédé très populaire. La plupart des circuits graphiques modernes peuvent traiter simultanément deux textures sur un même objet, et non plus successivement comme auparavant.

Rendu :
Il s'agit de l'ultime étape du calcul d'une image avant son affichage. Le rendu finalise les pixels qui seront effectivement visibles à l'écran, en fonction des textures employées et des effets de lumière, d'ombre ou de brouillard.

La liste des fonctions spécialisées 3D est encore très longue. Au fur et à mesure des années et des technologies, le nombre de ces fonctions augmentera sans cesse. Le nombre de combinaison pour générer le plus parfaitement possible un objet quelconque est infini. Mais une chose est sûre, le jeu de composants ou l'accélérateur graphique devra gérer ces fonctions et devra sûrement les intégrer. Mais avant tout, il devra être capable de calculer toutes ces fonctions dans des temps acceptables.

2.3 Les fonctions supplémentaires : codages MPEG-2

En plus de la gestion de la 2D et de la 3D, les cartes sont dotées d'autres fonctions. Elles sont capables de décompresser les fichiers MPEG-1* et surtout MPEG-2* en semi-matériel ou en matériel. Selon le degré d'implémentation des fonctions de décompression, la carte sera ou non apte à lire un DVD* Vidéo sur une machine de performance moyenne.

Voyons en quoi la décompression du MPEG-2 nécessite la présence de fonctions spécialisées.

Pour obtenir un taux de compression de haut niveau tout en maintenant une qualité élevée, le MPEG-2 ne garde pas une trace de chaque image. La vidéo est composée de deux types d'images, les images de référence (I-Frame) et les images calculées à partir des images de référence. Les images de références sont codées grâce à un algorithme non destructeur appelé DCT (Discrete Cosine Transform). Il faudra donc décoder ces images, c'est ce que l'on appelle l'iDCT (inverse DCT). Ce qui autorise le taux de compression élevé du MPEG-2, c'est qu'une partie seulement des images est entièrement décrite dans le fichier. Les autres sont alors calculées en temps réel lors de la décompression, à partir d'une ou deux images de référence auxquelles on applique diverses transformations ; c'est ce que l'on appelle le "motion compensation".

Ainsi, pour une décompression matérielle, deux fonctions sont nécessaires, le "motion compensation" et le "iDCT". Ces deux fonctions sont de plus en plus intégrées dans les puces graphiques récentes. Ceci est particulièrement dû à la généralisation des lecteurs DVD sur ordinateur.

Certaines cartes comme l'ATI All-In-Wonder-Pro sont vraiment des solutions évoluées. Ce genre de carte est équipée d'un tuner TV, une solution de compression et de décompression MPEG-2, ainsi que d'une entrée et une sortie TV. De plus en plus de cartes intègrent en standard une sortie TV. Avec de telles fonctions supplémentaires, de simples cartes dite 2D/3D peuvent littéralement se transformer en carte d'acquisition. C'est-à-dire que ces cartes sont capables non seulement de recevoir un signal externe mais en plus, le processeur de la carte se trouve en mesure de traiter en temps réel le signal reçu.

3. La partie logicielle d'une carte graphique

3.1 Les pilotes (drivers)

Les pilotes se caractérisent par un ensemble de fichiers contenant toutes les informations nécessaires pour contrôler la carte vidéo. Ces fichiers, ou plus particulièrement ces informations, sont utilisés par le système d'exploitation installé sur l'ordinateur. De là, le système d'exploitation sera en mesure de connaître toutes les caractéristiques de la carte. Nous serons alors en mesure de modifier la résolution de l'écran, le taux de rafraîchissement et le nombre de couleurs maximal affichable.

En d'autre terme, les pilotes permettent d'utiliser la carte dans des conditions optimales. De plus, certaines informations contenues dans les pilotes renseignent aussi des possibilités 3D qui peuvent être gérées par le processeur graphique de la carte. Des pilotes non optimisés peuvent nuire aux performances de la carte vidéo. Généralement inclus avec les pilotes, on peut trouver un programme qui permet de configurer la carte. Ces configurations peuvent aller du simple affichage d'informations au réglage de la luminosité pour chaque API* utilisé (figure 5).

Les constructeurs assurent généralement un suivi des pilotes par l'intermédiaire de leur site Internet. Les pilotes peuvent être dépassés par certaines technologies employées, plus particulièrement dans les jeux. C'est pour cette raison qu'il nécessaire de mettre à jour régulièrement, dans la mesure du possible, ses pilotes de carte vidéo.

3.2 Les API (Application Programming Interface)

Depuis la disparition des modes de programmation spécifique à chaque processeur 3D, des interfaces de programmation et des normes ont été créées ou se sont imposées : Glide, DirectX et OpenGL. Les deux premières sont surtout utilisées pour l'exécution des jeux. L'OpenGL est surtout utilisée dans le monde professionnel pour la création d'images 3D ou plus généralement des images de synthèse.

Ces normes sont en fait des bibliothèques communes qui pourront être utilisées par les programmeurs de jeux ou de logiciels d'images de synthèse. Ainsi, ce dernier ne se préoccupera pas de la compatibilité de son jeu avec l'ensemble des cartes graphiques existantes.

Voyons plus en détail quelles sont les différentes caractéristiques de ces trois bibliothèques graphiques.

Glide
Glide est une bibliothèque propriétaire. Elle ne fonctionne qu'avec les processeurs de 3Dfx Interactive* Voodoo, Voodoo2, Banshee, Voodoo3 et Voodoo5. La bibliothèque Glide s'est imposée grâce aux jeux, elle est très performante et facile à programmer. Contrairement à DirectX et OpenGL, Glide est un devenu standard mais reste propriétaire. C'est un mode de programmation direct alors que les deux autres sont des sous-couches. Plusieurs versions du Glide existent, il est toujours préférable d'utiliser la dernière version sous peine d'obtenir de mauvaises ou de moins bonnes performances lors de l'exécution du programme utilisant Glide.

DirectX
DirectX est le standard de Microsoft pour les jeux sous Windows. Il n'est pas propriétaire comme le Glide et toutes les cartes 2D/3D gèrent maintenant les fonctions de DirectX. DirectX est un ensemble, il faut plutôt parler de Direct 3D. En comparaison avec le Glide qui adresse directement ses commandes au processeur, Direct 3D est une sous couche logicielle qui sert d'interface entre le moteur du jeux et le pilote de la carte graphique. Différentes versions de DirectX sont disponibles. Il est toujours préférable d'utiliser la dernière version afin de mieux tirer parti de son matériel et bénéficier de tous les derniers effets 3D gérés par la carte graphique.

OpenGL
OpenGL, bibliothèque logicielle prévue pour accélérer la 3D, est comparable à DirectX. Elle se compose d'une série de commandes permettant de créer et de manipuler des images 3D. OpenGL est issu du monde de la 3D professionnelle et a fait son apparition dans le domaine du jeux. OpenGL est très complet alors que les cartes 2D/3D utilisent souvent un mini pilote ou un correctif de mise à jour des jeux. De nos jours, la plupart des jeux existent en OpenGL et en DirectX. Cette bibliothèque s'adapte très bien aux jeux où les personnages sont proches du décor. La bibliothèque OpenGL ne souffre pas d'effet de pixelisation* comme c'était le cas avec les anciennes versions de Direct X. Maintenant, les nouvelles cartes graphiques sont aussi puissantes sous OpenGL que sous DirectX qui en est maintenant à sa septième version.

Warp3D
Uniquement sur AmigaOS, cette surcouche logicielle permet de gérer les cartes graphiques 3D sur Amiga. Créé par Thomas et Hans-Joerg Friden, Warp3D est basé sur MesaGL et propose la gestion d'une partie des fonctions de l'OpenGL.

Comme pour les pilotes, il est préférable de se munir des dernières versions de ces API afin de bénéficier des dernières innovations technologiques en matière de 3D. Nous pourrons alors profiter pleinement de nos programmes et surtout de nos derniers jeux.

3.3 Les logiciels de tests de cartes graphiques

Ce genre de logiciel est utilisé pour tester les cartes graphiques. En fait, toutes les capacités et les ressources de la carte seront mises à l'épreuve. Ce genre de test est utile lorsque l'on désire savoir si notre carte graphique est toujours d'actualité ou si elle et tout simplement dépassée.

Pour mesurer les performances d'une carte 2D/3D, deux aspects entrent en ligne de compte. Le premier concerne toute la partie 2D. Cela signifie que le logiciel va tester la résolution, le taux de rafraîchissement et le nombre de couleurs. L'ensemble de ces éléments constitue le plus important pour offrir un confort d'utilisation acceptable. De nos jours, les performances 2D des cartes récentes s'équivalent à peu près. Les écarts de performances sont totalement imperfectibles pour l'utilisateur. La partie la plus intéressante des tests concerne l'utilisation de la carte dans un environnement ludique (les jeux). Le logiciel teste les capacités de la carte aussi bien en OpenGL qu'en DirectX et par l'intermédiaire de véritables jeux, tester les capacités de la carte à appliquer des textures sur des décors et objets plus ou moins complexe.

A la fin de l'exécution du programme, nous pouvons obtenir une note de performance globale de la carte et du système ainsi que plusieurs sous notes qui concernent des parties clés importantes. Il suffit ensuite de comparer nos résultats avec d'autres cartes pour avoir une idée des performances de sa carte vidéo. Un des meilleurs logiciels de test de performance se nomme 3DMark2001 d'Orion. L'annexe 2 présente un des résultats types qui peuvent être obtenus sous ce logiciel.

Conclusion

Pour conclure, nous pouvons dire que la carte graphique est un composant clé pour que l'ordinateur puissent fonctionner correctement. Nous avons pu voir que la carte vidéo est composée de plusieurs éléments ayant chacun des fonctions très spécifiques et primordiales. Parmi ces composants nous retrouvons le jeu de composants, le RAMDAC, la mémoire vidéo, le type de bus utilisé et bien sûr les connecteurs d'entrées/sorties.

Cependant, nous avons pu constater que la carte graphique ne se limitait pas seulement au traitement des informations à envoyer sur un moniteur. Ceci était vrai il y a encore quelques années. De nos jours, les cartes graphiques sont devenues de véritables centre de traitements et de calculs pour soulager le processeur principal de l'ordinateur. On parle même d'accélérateur graphique. Des centaines de fonctions préprogrammées sont implantées dans les jeux de composants. Ainsi, les cartes vidéo ont désormais le rôle d'effectuer tous les calculs nécessaires à la modélisation d'un objet 3D. Lors de l'affichage, cet objet 3D doit avoir un aspect proche de la réalité. Aussi, nous avons vu que pour exploiter toute la puissance de ces cartes graphiques, il était nécessaire de disposer des pilotes adéquates. En plus de ces pilotes, il existe d'autres programmes dit A.P.I permettant d'utiliser toutes les ressources de la carte dans des logiciels de graphismes ou de jeux.

Actuellement, les cartes vidéo évoluent à un rythme très soutenu. Les performances et les fonctions gérées sont de plus en plus accrues. Si nous tenons à rester à la "mode", il faudrait changer sa carte vidéo tous les six mois afin de bénéficier des dernières avancées technologiques. A quand la carte vidéo universelle qui intégrera et calculera toutes les fonctions requises pour un affichage 3D hyper réaliste ?

Glossaire

3DFX interactive :
Compagnie privée qui est spécialisée dans la création de processeurs graphiques.

API (Application Programming Interface) :
Bibliothèques ou programmes visant à exploiter la carte graphique.

AGP (Accelerated Graphics Port) :
Bus local graphique entre la carte vidéo et la mémoire centrale. Il se caractérise par un haut débit et d'excellentes capacités. Il accélère l'affichage 3D.

Bus :
Circuit imprimé sur la carte reliant les différents éléments et gérant les échanges de données.

DVD (Digital Versatile Disc) :
Nouveau support numérique destiné au stockage d'informations.

MPEG-1 et 2 (Motion Pictures Expert Group) :
Format de fichier multimédia contenant des séquences vidéo. Le codage du MPEG-1 est différent du codage MPEG-2.

Pixelisation :
Effet visible sur une image. Les pixels qui composent l'image deviennent grossiers. La qualité de l'image obtenue est alors médiocre.

PCI (Peripheral Component Interconnect) :
Bus 32 bits à haut débit, équipant tous les ordinateurs actuels.

RAMDAC (RAM Digital Analogic Converter) :
Circuit permettant de transformer le contenu de la mémoire d'un format numérique en format analogique.


[Retour en haut] / [Retour aux articles]