« Les cartes graphiques/Les cartes accélératrices 3D » : différence entre les versions
Contenu supprimé Contenu ajouté
Aucun résumé des modifications |
m typo |
||
Ligne 52 :
==Le pipeline graphique==
Il existe deux sous-types de rasterization : le rendu en mode immédiat, et le rendu en ''tiles''. La plupart des cartes graphiques des ordinateurs de bureau ou des ordinateurs portables utilisent la première méthode. Le rendu en tiles est surtout utilisé sur les équipements mobiles ou embarqués, qui fonctionnent à basse performance et à basse consommation. Une des raisons est un avantage dy rendu en tile pour le rendu en 2D, comparé aux architectures en mode immédiat. En général, les cartes graphiques utilisant le rendu en tiles consomment moins d'énergie et sont plus rapides que leur équivalent en mode immédiat pour le rendu 2D, ce qui en fait un avantage certain pour les appareils mobiles.
Ligne 90 :
==L'architecture d'une carte 3D en mode immédiat==
Avant l'invention des cartes graphiques, toutes ces étapes du pipeline graphique étaient réalisées par le processeur : il calculait l'image à afficher, et l’envoyait à une carte d'affichage 2D. Au fil du temps, de nombreux circuits furent ajoutés, afin de déporter un maximum de calculs vers la carte vidéo. Les circuits d'une carte graphique varie grandement selon son degré de sophistication. Les premières cartes graphiques ne faisaient pas grand chose et le processeur ne leur déléguait que peu de calculs. Mais avec l'évolution des technologies, de plus en plus de calculs de rendu ont été délégués à la carte graphique. Cela s'en ressent sur l'organisation des circuits des cartes graphiques. Si certains circuits sont toujours présents sur toutes les cartes graphiques, d'autres ont
[[File:Division of labor cpu and gpu.svg|centre|vignette|upright=2.0|Répartition du travail entre processeur et GPU, sur les cartes graphiques récentes. On voit que le GPU s'occupe des traitements liés au moteur graphique, tandis que les autres traitements (son, physique) sont pris en charge par le processeur.]]
Toute carte graphique contient obligatoirement de la mémoire vidéo, des circuits de communication avec le bus, des circuits d’interfaçage avec l'écran, et d'autres circuits. A cela, il faut ajouter les circuits pour le rendu 3D proprement dit. Ces derniers sont regroupés dans un ensemble hétérogène de circuits aux fonctions
[[File:Architecture de base d'une carte 3D - 1.png|centre|vignette|upright=2.0|Architecture de base d'une carte 3D - 1]]
Ligne 108 :
===Les circuits du pipeline fixe===
Toute carte graphique contient des circuits, aussi appelés unités, qui prennent en charge une étape du pipeline graphique. Entre les différentes unités, on trouve souvent des mémoires pour mettre en attente les vertices ou les pixels, au cas où une unité est trop occupée. Pour plus d'efficacité, ces cartes graphiques possédaient parfois plusieurs unités de traitement des vertices et des pixels, ou plusieurs ROP. Dans ce cas, ces unités multiples sont précédées par un circuit qui se charge de répartir les vertex ou pixels sur chaque
Les toutes premières cartes graphiques contenaient simplement des circuits pour gérer les textures, en plus de la mémoire RAM vidéo. Seules l'étape de texturing, quelques effets graphiques (brouillard) et l'étape d'enregistrement des pixels en mémoire étaient prises en charge par la carte graphique. Par la suite, ces cartes s’améliorèrent en ajoutant plusieurs circuits de gestion des textures, pour colorier plusieurs pixels à la fois. Cela permettait aussi d'utiliser plusieurs textures pour colorier un seul pixel : c'est ce qu'on appelle du multitexturing. Les cartes graphiques construites sur cette architecture sont très anciennes. On parle des cartes graphiques ATI rage, 3DFX Voodoo, Nvidia TNT, etc.
Ligne 116 :
[[File:Architecture de base d'une carte 3D - 2.png|centre|vignette|upright=1.5|Carte 3D sans rasterization matérielle.]]
Les cartes suivantes ajoutèrent une gestion des étapes de rasterization directement en matériel. Les cartes ATI rage 2, les Invention de chez Rendition, et d'autres cartes graphiques supportaient ces étapes en hardware. De nos jours, ce genre d'architecture est
[[File:Architecture de base d'une carte 3D - 3.png|centre|vignette|upright=1.5|Carte 3D avec gestion de la géométrie.]]
Ligne 132 :
[[File:Architecture de base d'une carte 3D - 5.png|centre|vignette|upright=1.5|Carte 3D avec pixels et vertex shaders non-unifiés.]]
Depuis DirectX 10, ce n'est plus le cas : le jeu d'instructions a été unifié entre les ''vertex shaders'' et les ''pixels shaders'', ce qui fait qu'il n'y a plus de distinction entre processeurs de ''vertex shaders'' et de ''pixels shaders'', chaque processeur pouvant traiter indifféremment l'un ou l'autre. Cela a un avantage considérable, car tous les jeux vidéo n'ont pas les mêmes besoins. Certains vont avoir une géométrie très
[[File:Architecture de base d'une carte 3D - 6.png|centre|vignette|upright=1.5|Carte 3D avec ''pixels'' et ''vertex shaders'' unfifiés.]]
|