Chinese (People's Republic of China)  English  Français


Supinfo-Projects.com
Tous les projets des élèves ingénieurs de Supinfo



Projets
  Dernier Projet
  Les plus populaires
  Tous les Projets

201 Visiteurs
3168 Projets


My Supinfo-Projects

   Connectez-vous
   Créez un Compte


Synopsis

   736 Visites
   Note INTERNET : 15.3
    (6 Votants)
   0 Commentaires

   Lire l'article

Evaluez cet article

20
18
16
14
12
10
8
6
4
2
0


Commentez cet article

Auteur :

Email :

Votre commentaire :



 
2004 - Pérennisation
Introduction à la 3D
[20 mn de lecture - paru le 5/14/2004 6:18:05 PM - Public : Débutant]

Auteur

torry_holtGregory MARTIN
Elève-Ingénieur Supinfo Paris
Promotion SUPINFO 2007

   Lui écrire
   Tous les projets de cet auteur
   Le mini-CV de cet auteur

2. Les principaux effets des cartes 3D

2.1. Antialiasing

Sur nos écrans, l'image est constituée d'un grand nombre de points élémentaires, les pixels. Ces derniers sont carrés, ou du moins rectangulaires. Çela convient très bien lorsque l'on veut afficher des lignes verticales ou horizontales: pas de problèmes pour empiler ou aligner des carrés, mais lorsqu'il s'agit de faire des lignes obliques ou des courbes, ça ne va plus. C'est là qu'apparaissent les célèbres "effets d'escalier", sur les bords de tout ce qui n'est pas bien droit et bien vertical, ou horizontal. En anglais, on appelle ça l'aliasing, en français le crénelage. Comme on ne peut pas changer la forme de nos pixels, ces imperfections sont inévitables, on y peut rien. Ce qu'on peut faire par contre, c'est les rendre invisibles, ou du moins très difficiles à voir. L'antialiasing, ou anticrénelage, c'est ça.

En pratique, ça se fait avec des techniques de filtrage, en jouant sur la couleur des pixels. On va tout simplement modifier la couleur des pixels sur les bords des formes, pour qu'ils se fondent progressivement dans la couleur qui se trouve autour d'eux. Et comme notre oeil est surtout sensible au contraste de couleurs, on est supposé ne rien voir. Sauf si l'effet est un peu trop appuyé ou calculé un peu bêtement: dans ce cas les contours nous sembleront moins nets, voire carrément flous. L'antialiasing, comme le reste des fonctions graphiques, peut être fait par l'application elle-même, ou bien par la carte graphique directement. Et comme l'anticrénelage demande pas mal de calculs, lorsqu'il s'agit d'afficher des scènes en temps réel, il vaut nettement mieux que ça soit fait par le matériel directement, plutôt que par le logiciel.

Désormais, l'antialiasing se retrouve sous une nouvelle forme plus complète appelée : FSAA (Full Screen Anti Aliasing).

Le FSAA consiste tout simplement à appliquer des techniques d'anti-crénelage à l'image entière, en temps réel, pour chaque image affichée. C'est fait généralement en "dessinant" une version agrandie de l'image dans la mémoire de la carte graphique (sans l'afficher), puis en calculant l'anti-crénelage sur cette image agrandie entière. Ensuite, l'image transformée est réduite à sa dimension originale, et enfin affichée.
On imagine bien qu'un tel processus demande énormément de calculs et coûte cher en performance. Très cher même et c'est pour çela qu'on ne trouve jamais cette option ailleurs qu'en hardware dans les cartes.

2.2. MIP Mapping

Le problème avec une scène en 3D vue en perspective comme depuis notre écran, c'est qu'en général les objets bougent, ou le point de vue se déplace. La taille relative des objets que l'on voie change donc: ils sont gros quand ils sont près, et tout petits quand ils sont loin, sauf que les textures, elles, sont de taille fixe. Si on les agrandit ou on les réduit en fonction des changements de taille apparente, de trop près ça devient hideux, peu détaillé, et plein "d'escaliers", et de loin, si on réduit trop, tout ce qui reste est une vague partie de pixels qui ne ressemble plus à rien. C'est là que le MIP Mapping, ou Mappage MIP en français, entre en jeu.

Le MIP Mapping consiste à disposer de plusieurs versions d'une même texture, de différentes tailles, correspondant à différentes distances de vue. Lorsque l'objet texturé est loin, c'est la "petite" texture qui est utilisée pour l'affichage. Et lorsque l'objet est près, c'est la grande texture bien détaillée qui est affichée. L'inconvénient de cette technique, c'est qu'elle nécessite plus de mémoire sur la carte: non seulement il faut pouvoir stocker toutes les textures à afficher dans une scène, mais en plus il va falloir stocker plusieurs versions de chaque. Mais les gros avantages, c'est que non seulement la qualité de l'image est grandement améliorée, mais en plus ça réduit la charge de transfert mémoire de la machine (puisque les différentes tailles de texture sont stockées une bonne fois dans la carte, au lieu de faire l'aller-retour en permanence).

2.3. Texture Filtering

Le filtrage de texture est l'opération la plus importante pour pouvoir présenter à l'écran une belle image 3D. Elle sert à plusieurs choses, comme par exemple faire que les textures adjacentes se fondent les unes avec les autres sans que l'on voie le raccord ou permettre un affichage propre de celles qui sont vue avec un angle important, comme un panneau ou une enseigne qui serait vu pratiquement de profil.
Les techniques les plus courantes de filtrage de texture sont l'échantillonage de point (point sampling), le filtrage bilinéaire (bilinear filtering), le filtrage trilinéaire (trilinear filtering), et le filtrage anisotropique (anisotropic filtering). Juste après nous verrons les 2 principales techniques de filtrage, trilinéaire et anisotropique.

 Plus on veut de bons résultats, plus c'est coûteux en calcul. La liste ci-dessus est ordonnée de la méthode la plus économique, et qui donne les moins bons résultats, à la méthode la plus coûteuse, mais qui donne les meilleures images: le filtrage anisotropique. Ne pas oublier non plus que le coût en temps de calcul est relatif, et que ce que l'on peut se permettre ou pas dépend beaucoup de la résolution d'écran choisie. Plus la résolution est élevée, plus il y a de pixels et de textures, et donc plus il y a de travail à faire pour les filtrer. Ainsi, la pénalité de performance du filtrage anisotropique pourra être minimale et indolore à basse résolution, mais complètement prohibitive en 1600x1200.

2.4. Trilinear Filtering

Cette méthode est une variante haute qualité du filtrage bilinéaire, basée sur le MIP Mapping. La technique consiste à échantillonner 8 texels: les 4 du filtrage bilinéaire, et les 4 texels correspondants appartenant au prochain niveau de MIP mapping, et à interpoler le tout. Un texel est un pixel texturé. Comme le pixel, qui est la plus petite partie possible d'une image, le texel est la plus petite partie d'une texture. Ça permet d'adoucir les transitions entre les différents jeux de texture des différents niveaux de MIP mapping: la couleur qu'on a calculé se fond non seulement dans le niveau actuel, mais se fondra bien aussi dans le suivant. On évite ainsi des anomalies visuelles irritantes lors des changements de niveau de texture.

La plupart des cartes 3D modernes savent faire du filtrage trilinéaire matériel avec une pénalité de performance négligeable.

2.5. Anisotropic Filtering

Anisotropic Filtering est la meilleure méthode et aussi largement la plus coûteuse, évidemment. Le filtrage anisotropique permet certes de produire des images de grande qualité, mais ça n'est quand même pas la panacée pour toutes les circonstances.

Le filtrage anisotropique analyse une zone carrée, et dans pas mal de cas c'est loin d'être idéal. Il échantillonne une zone plus grande que les 8 texels du filtrage trilinéaire. Il existe différents niveaux dans l’anisotropie, permettant de prendre plus ou moins de texels en compte (en moyenne 64) mais il est clair que le résultat final est toujours meilleur. Le nombre et quels texels sont échantillonnés dépend de l'angle sous lequel on voit la surface, depuis l'écran. La technique donne des résultats particulièrement remarquables pour afficher des caractères vus sous un angle.

2.6. Transform & Lighting (T&L)

Dans l'espace 3D, pour l'essentiel ce que l'on trouve, ce sont des objets, qui ont des positions, des distances entre eux, et des sources de lumière (éventuellement assorties de propriétés particulières). Ce qui ne nous fait pas une image affichable. Nos écrans, plus ou moins plats, sont à deux dimensions, eux. Il va donc falloir calculer ce que l'on voit effectivement, vu de l'endroit ou on se trouve dans le monde virtuel, par la fenêtre de notre écran, avec l'éclairage de la scène tel qu'il doit être en fonction des sources lumineuses. Le Transform & Lighting, c'est ça.

Les objets d'une scène 3D sont composés de polygones. Pour animer la scène, des transformations sont appliquées à ces polygones. Ces transformations ne demandent pas de calculs complexes, mais sont répétés des milliers de fois par seconde. Ces opérations sont normalement effectués par le processeur central. Avec le T&L (Transform And Lighting), elles sont laissées à la puce graphique ; le processeur central pouvant être utilisé pour développer la complexité des scènes et augmenter le niveau d'intelligence artificielle dans les jeux par exemple.

2.7. Pixel Shader

Le Pixel Shader sert à créer de l'ambiance sur les surfaces et les matériaux qui se rapprochent de la réalité. Ainsi, un nombre infini de matériaux remplacent désormais l'effet artificiel informatisé par des surfaces organiques à haut réalisme. Grâce à l'accroissement du contrôle des effets, les programmeurs ne sont plus limités dans ce qu'ils peuvent appliquer à leurs scènes. Des personnages réalistes avec effet de peau jamais vue auparavant tel que de la barbe et des blêmissements sont maintenant possibles. On pourra désormais apercevoir les alvéoles sur les balles de golf, la texture du cuir sur les divans et la texture et le grain du bois pour ne nommer que ceux-là.



Articles de la même catégorie

 Pages : Top


285 Visites
0 Commentaires
Introduction ActionScript
[30 mn de lecture - paru le 5/13/2004 5:26:17 PM - Public : Confirmé]

En savoir plus


543 Visites
0 Commentaires
Introduction à ActionScript
[30 mn de lecture - paru le 5/13/2004 4:13:24 PM - Public : Confirmé]

En savoir plus


292 Visites
0 Commentaires
Codecs Video - RV9
[20 mn de lecture - paru le 5/13/2004 1:03:49 PM - Public : Débutant]

En savoir plus

   Tous les Articles


SUPINFO Training Center peut vous proposer une formation ...

   Devenez Ingénieur Système Microsoft en 35 jours avec SUPINFO Training Center
   Devenez Certifiés Cisco en 13 jours avec SUPINFO Training Center
   Devenez Administrateur Système Microsoft avec SUPINFO Training Center
   Devenez Développeur Microsoft .NET en 13 jours avec SUPINFO Training Center



Powered by Campus-Booster Technology
Conditions d'utilisation & Copyright | Respect de la vie privée
© Copyright 1965-2006 Supinfo Paris, Paris Academy of Computer Science
Supinfo, Ecole Supérieure d'Informatique et Paris Academy Of Computer Science are trade marks.
23, rue de Château LANDON - 75010 PARIS - Phone : +33 (0) 153359 700 Fax : +33 (0) 153359 701

Web site autided by :