Dernière MAJ : 08/09/99 23:32  -   Résolution recommandée : 800*600 et plus

hascpu_part1.jpg (16338 octets)hascpu_part2.jpg (16230 octets)

sommaire.gif (1301 octets)

- ACCUEIL
- NEWS

- CARTES GRAPH.
- PROCESSEURS
- CARTES MERE
- CD/DVD-ROM
- STOCKAGE
- SON
- DIVERS

- LIENS
- FORUM
- LIVRE D'OR

- CONTACT

 

Hit-Parade

 

Théorie
La 3D expliquée

carte_graphique.jpg (20520 octets)

 

*** Le rôle de la carte graphique ***

A partir de là, tout le reste du travail est effectué par la cart graphique. Et elle a du boulot, croyez-moi ! Le setup engine et le rendering engine vont se décarcasser pour sortir une belle image sur votre moniteur.

 

- Le setup

Le setup engine de la carte se charge de "diviser" les polygones en triangles, plus facilement manipulables et utilisables (setup). Ce procédé appelé aussi tesselation est effectué par toutes les cartes graphiques. Pour comparaison, une Voodoo 3 3000 possède un setup engine de 7 millions de triangles par seconde. Un Pentium III 550, 4 millions et un GeForce 256, 15 millions !!
Plus un objet possède de polygones, plus celui-ci est détaillé, et donc s'approche de la réalité. Des cartes comme le GeForce 256 pourront traiter 15 millions de triangles par secondes, donc des scènes bien plus lourdes (et donc plus réalistes), sans perte de temps.

img_polygone.gif (2428 octets) img_polygone_trinaglescoord.gif (4582 octets)

 

- Le shading

La carte se charge ensuite de placer les ombres sur les polygones, en fonction des sources de lumière. Trois types d'ombrage existent aujourd'hui, mais un seul est utilisé :

  • Le flat shading (ombrage à plat), applique le même ombrage sur toutes la surface d'un polygone. Il n'est plus du tout utilisé, du fait du mauvais rendu visuel qu'il procure.

  • Le gouraud shading (ombrage de gouraud) : le lighting model (les sources d'éclairage que le processeur a auparavant calculé) est appliqué à chaque coin du polygone. Le reste est calculé par interpolation. C'est l'ombrage le plus utilisé aujourd'hui.

  • Le phong shading (ombrage de phong) définit un niveau d'ombre pour chaque pixel d'un polygone. Bien sûr, c'est le plus précis, mais aussi le plus gourmand en ressources. Les cartes 3D grand public ne le gère pas, mais rassurez-vous, la différence avec le gouraud n'est que très peu visible.

 

- L'application des textures

Vient ensuite l'application des textures sur ces triangles (travail effectué par le rendering engine, ou moteur de rendu). Ben oui, un objet sans textures n'est pas très réaliste. Plusieurs effets sont ensuite appliqués sur ces textures, pour les rendre visuellement plus abouties. Voici quelques unes des fonctions gérées parfaitement par les cartes 3D :

expendable_embm.jpg (19723 octets)
Environment Bump Mapping (Expendable)

  • Le mip-mapping : plusieurs tailles différentes sont disponibles pour une même texture, afin d'éviter le phénomène de scintillement lors d'une réduction trop élevée.

  • Le filtrage sert à enlever le phénomène de pixélisation quand on se rapproche trop d'une texture. Il existe trois méthodes pour filtrer les textures : le bilinear filtering qui crée des pixels intermédiaires dans une texture par interpolation (en fontion des quatre pixels adjacents), le trilinear filtering (pour simplifier, c'est une combinaison du

bilinear filtering et du mip-mapping), et enfin, l'anisotropic filtering, qui tient compte de la perpective. Les deux premières méthodes sont les plus utilisées, car présentes sur toutes les cartes 3D. L'anisotropic filtering, n'étant présent que sur les dernières cartes graphiques, et demandant beaucoup de ressources, n'est exploité que dans très peu de jeux.

  • L'antialiasing (ou anticrénelage), sert à estomper les effets d'escaliers des droites.

  • Peuvent ensuite être appliqués les effets de fogging (brouillard), de lens flare (éblouissement du soleil), d'environment mapping (réflexion de l'environnement externe), d'alpha blending (transparence), de bump mapping (simulation de relief sur une texture par le biais des ombres), ou plus élaboré, d'environnement mapped bump mapping.

Les cartes dernière génération gèrent aussi le multitexturing, soit l'application de plusieurs textures en un seul cycle d'horloge. Jusqu'à maintenant, seul le dual-texturing était géré (deux textures à la fois, par exemple la texture de base, plus l'environment map), mais avec l'arrivée de cartes telles que le GeForce 256 ou le Savage 2000, quatre textures pourront être appliquées en même temps (quad-texturing).

 

- Le rôle de la mémoire

La mémoire, elle, se charge de stocker les textures en mémoire vidéo. Evidemment, plus il y en a, plus la mémoire vidéo doit être importante pour stocker ces textures. C'est là qu'intervient le bus AGP, et plus précisément, l'AGP texturing, technique permettant de stocker le surplus de textures dans la mémoire centrale, et d'y accéder rapidement. Pour un bus AGP 2x (en 32 bits) sur une carte mère BX non-overclockée par exemple (donc bus système à 100 Mhz), le débit du bus AGP est :

2/3(100 Mhz)*32 bits*2 = 66*4 octets*2 = 528 Mo/s

Le débit d'un bus AGP 2x est donc de 528 Mo/s. Malheureusement, ce débit, bien qu'il puisse paraître élevé, est bien loin de la vitesse à laquelle le chip de la carte graphique accède à sa mémoire vidéo. Pour une TNT 2 standard par exemple, la mémoire est cadencée à 150 Mhz, sur une interface 128 bits, ce qui nous donne un débit de :

150*128 bits = 150*16 octets = 2400 Mo/s

Et encore, ce débit peut monter bien plus haut sur une TNT 2 Ultra. Le bus AGP 2x n'est pas assez rapide, et c'est pour cela qu'arrive le bus AGP 4x, d'un débit d'1 Go/s !! Bon, cela dit, peu de jeux exploitent plus de 16 Mo de textures pour une même scène, et il vaut mieux utiliser le bus AGP plutôt qu'aller stocker les textures sur le disque dur.
Enfin, dernier point en relation avec la mémoire, je veux bien sûr parler du S3TC (S3 Texture Compression). Cette technique, inventée par S3, est un ingénieux système permettant de compresser les textures jusqu'à un ratio de 1 pour 6. Les textures, habituellement au format 256*256, et donc se révélant très floue quand elles sont grossies, vont pouvoir avoir une taille maximale de 2048*2048 pixels. Evidemment, sans compression, c'est impossible à utiliser, la texture en 32 bits pèserait : 2048*2048*32 bits = 2048*2048*4 = 16 Mo, soit toute la taille de votre mémoire vidéo. En atteignant un ratio maximal de 1:6, la texture ne pèserait "plus que" 2,6 Mo. C'est pourquoi l'AGP 4x deviendrait ici très utile. Combiné à 32 ou 64 Mo de mémoire vidéo, le S3TC devient très très très alléchant :))

s3tc_1.jpg (19775 octets)  s3tc_2.jpg (21772 octets)  s3tc_3.jpg (19287 octets)
Le S3TC en action dans un niveau spécial pour Unreal. Les images parlent d'elles-même !!

 

 

<------------
Le rôle du CPU
------------>
Et après ? - Conclusion

 

barre_noire.gif (804 octets)barre_noire_2.gif (804 octets)
Copyright Nicolas Fallières, HASCPU, 1999