Unité de cartographie de texture - Texture mapping unit

Une unité de mappage de texture (TMU) est un composant des unités de traitement graphique (GPU) modernes . Historiquement, il s'agissait d'un processeur physique distinct. Une TMU est capable de faire pivoter, redimensionner et déformer une image bitmap (en effectuant un échantillonnage de texture ), pour être placée sur un plan arbitraire d'un modèle 3D donné en tant que texture. Ce processus est appelé mappage de texture . Dans les cartes graphiques modernes, il est implémenté comme une étape discrète dans un pipeline graphique , alors que lors de sa première introduction, il a été implémenté en tant que processeur séparé, par exemple comme vu sur la carte graphique Voodoo2 .

Contexte et histoire

La TMU a été créée en raison des demandes de calcul d'échantillonnage et de transformation d'une image plate (en tant que carte de texture) à l'angle et à la perspective corrects dont elle aurait besoin dans l'espace 3D. L'opération de calcul est une multiplication matricielle importante , que les processeurs de l'époque (les premiers Pentium) ne pouvaient pas gérer avec des performances acceptables.

En 2013, les TMU font partie du pipeline de shader et sont découplées des pipelines de sortie de rendu (ROP). Par exemple, dans le GPU Cypress d'AMD, chaque pipeline de shader (dont il y en a 20) a quatre TMU, ce qui donne au GPU 80 TMU. Les concepteurs de puces le font pour associer étroitement les shaders et les moteurs de texture avec lesquels ils travailleront.

Géométrie

Les scènes 3D sont généralement composées de deux choses: la géométrie 3D et les textures qui couvrent cette géométrie. Les unités de texture dans une carte vidéo prennent une texture et la «mappent» sur un morceau de géométrie. Autrement dit, ils enroulent la texture autour de la géométrie et produisent des pixels texturés qui peuvent ensuite être écrits sur l'écran. Les textures peuvent être une image réelle, une lightmap ou même des maps normales pour des effets d'éclairage de surface avancés.

Taux de remplissage de la texture

Pour rendre une scène 3D, les textures sont mappées sur le dessus des maillages polygonaux . Ceci est appelé mappage de texture et est accompli par des unités de mappage de texture (TMU) sur la carte vidéo. Le taux de remplissage de texture est une mesure de la vitesse à laquelle une carte particulière peut effectuer un mappage de texture.

Bien que le traitement du pixel shader devienne de plus en plus important, ce nombre a toujours un certain poids. Le meilleur exemple de ceci est le X1600 XT. Cette carte a un rapport de 3 à 1 processeurs de pixel shader / unités de mappage de texture. En conséquence, le X1600 XT obtient des performances inférieures par rapport aux autres GPU de la même époque et de la même classe (tels que le 7600GT de nVidia). Dans le milieu de gamme, le mappage de texture peut encore être un goulot d'étranglement. Cependant, dans le haut de gamme, le X1900 XTX a le même rapport 3: 1, mais fonctionne très bien car les résolutions d'écran sont supérieures et il a plus que suffisamment de puissance de mappage de texture pour gérer n'importe quel affichage.

Des détails

Unités de cartographie de texture (TMU)

Les textures doivent être adressées et filtrées. Ce travail est effectué par des TMU qui fonctionnent conjointement avec des unités de pixel et de vertex shader . C'est le travail de la TMU d'appliquer des opérations de texture aux pixels. Le nombre d'unités de texture dans un processeur graphique est utilisé lors de la comparaison de deux cartes différentes pour les performances de texturation. Il est raisonnable de supposer que la carte avec plus de TMU sera plus rapide à traiter les informations de texture. Dans les GPU modernes, les TMU contiennent des unités d'adresse de texture (TA) et des unités de filtrage de texture (TF). Les unités d'adresse de texture mappent des texels en pixels et peuvent exécuter des modes d'adressage de texture. Les unités de filtrage de texture effectuent éventuellement un filtrage de texture basé sur le matériel .

Pipelines

Un pipeline est l'architecture de la carte graphique, qui fournit une idée généralement précise de la puissance de calcul d'un processeur graphique.

Un pipeline n'est pas formellement accepté comme terme technique. Il existe différents pipelines dans un processeur graphique car des fonctions distinctes sont exécutées à un moment donné. Historiquement, on l'appelait un processeur de pixel attaché à une TMU dédiée. Une Geforce 3 avait quatre pipelines de pixels, dont chacun avait deux TMU. Le reste du pipeline a traité des choses comme la profondeur et les opérations de mélange.

L'ATI Radeon 9700 a été la première à briser ce moule, en plaçant un certain nombre de moteurs de vertex shader indépendants des pixel shaders. Le GPU R300 utilisé dans la Radeon 9700 avait quatre ombrages de vertex globaux, mais divisait le reste du pipeline de rendu en deux (c'était, pour ainsi dire, double cœur) chaque moitié, appelée quad, avait quatre shaders de pixels, quatre TMU et quatre ROP.

Certaines unités sont utilisées plus que d'autres, et dans un effort pour augmenter les performances globales du processeur, ils ont tenté de trouver un "sweet spot" dans le nombre d'unités nécessaires pour une efficacité optimale sans avoir besoin d'un excès de silicium. Dans cette architecture, le nom de pipeline de pixels a perdu sa signification car les processeurs de pixels n'étaient plus attachés à des TMU uniques.

Le vertex shader avait longtemps été découplé, à commencer par le R300, mais le pixel shader n'était pas si facile à faire, car il nécessitait des données de couleur (par exemple des échantillons de texture) pour fonctionner, et devait donc être étroitement couplé à une TMU.

Ledit couplage reste à ce jour, où le moteur de shader, constitué d'unités capables d'exécuter des données de sommets ou de pixels, est étroitement couplé à une TMU mais dispose d'un répartiteur crossbar entre sa sortie et la banque de ROP.

Rendu des pipelines de sortie (ROP)

Le pipeline de sortie de rendu est un terme hérité, plus souvent appelé unité de sortie de rendu . Son travail est de contrôler l'échantillonnage des pixels (chaque pixel est un point sans dimension), de sorte qu'il contrôle l' anticrénelage , lorsque plusieurs échantillons sont fusionnés en un pixel. Toutes les données rendues doivent traverser le ROP pour être écrites dans le framebuffer , à partir de là, elles peuvent être transmises à l'affichage.

Par conséquent, le ROP est l'endroit où la sortie du GPU est assemblée en une image bitmap prête à être affichée.

Utilisation dans GPGPU

Dans GPGPU , les cartes de texture en 1, 2 ou 3 dimensions peuvent être utilisées pour stocker des données arbitraires. En fournissant une interpolation , l'unité de mappage de texture fournit un moyen pratique d'approximer des fonctions arbitraires avec des tables de données.

Voir également

Les références

Liens externes