En gráficos de computadora , una unidad de mapeo de textura ( TMU ) es un componente en las unidades de procesamiento de gráficos (GPU) modernas. Pueden rotar, redimensionar y distorsionar una imagen de mapa de bits para colocarla en un plano arbitrario de un modelo 3D dado como una textura, en un proceso llamado mapeo de textura . En las tarjetas gráficas modernas se implementa como una etapa discreta en una tubería de gráficos , [1] mientras que cuando se introdujo por primera vez se implementó como un procesador separado, por ejemplo, como se ve en la tarjeta gráfica Voodoo2 .
La TMU surgió debido a las demandas computacionales de muestrear y transformar una imagen plana (como el mapa de textura) al ángulo y la perspectiva correctos que necesitaría en el espacio 3D. La operación computacional es una multiplicación de matrices grande , que las CPU de la época (los primeros Pentium) no podían manejar con un rendimiento aceptable.
En 2013, las TMU forman parte del pipeline de sombreadores y están desacopladas de los pipelines de salida de renderizado (ROP). Por ejemplo, en la GPU Cypress de AMD, cada pipeline de sombreadores (de los cuales hay 20) tiene cuatro TMU, lo que le da a la GPU 80 TMU. Esto lo hacen los diseñadores de chips para acoplar estrechamente los sombreadores y los motores de texturas con los que trabajarán.
Las escenas 3D generalmente se componen de dos cosas: geometría 3D y las texturas que cubren esa geometría. Las unidades de textura en una tarjeta de video toman una textura y la "mapean" a una pieza de geometría. Es decir, envuelven la textura alrededor de la geometría y producen píxeles texturizados que luego se pueden escribir en la pantalla. Las texturas pueden ser una imagen real, un mapa de luz o incluso mapas normales para efectos de iluminación de superficie avanzados.
Para renderizar una escena 3D, las texturas se asignan sobre las mallas poligonales . Esto se denomina asignación de texturas y se logra mediante unidades de asignación de texturas (TMU) en la tarjeta de video. La velocidad de relleno de texturas es una medida de la velocidad con la que una tarjeta en particular puede realizar la asignación de texturas.
Aunque el procesamiento de sombreado de píxeles está cobrando cada vez más importancia, esta cifra sigue teniendo cierto peso. El mejor ejemplo de ello es la X1600 XT. Esta tarjeta tiene una proporción de procesadores de sombreado de píxeles/unidades de mapeo de texturas de 3 a 1. Como resultado, la X1600 XT logra un rendimiento inferior en comparación con otras GPU de la misma era y clase (como la 7600GT de nVidia) [ cita requerida ] . En el rango medio, el mapeo de texturas todavía puede ser un cuello de botella. Sin embargo, en el extremo superior, la X1900 XTX tiene esta misma proporción de 3 a 1, pero funciona bien porque las resoluciones de pantalla alcanzan su máximo y tiene potencia de mapeo de texturas más que suficiente para manejar cualquier pantalla.
Las texturas necesitan ser direccionadas y filtradas. Este trabajo lo realizan las TMU que funcionan en conjunto con las unidades de sombreado de píxeles y vértices . El trabajo de la TMU es aplicar operaciones de textura a los píxeles. La cantidad de unidades de textura en un procesador gráfico se utiliza al comparar dos tarjetas diferentes para el rendimiento de textura. Es razonable suponer que la tarjeta con más TMU será más rápida en el procesamiento de la información de textura. En las GPU modernas, las TMU contienen unidades de dirección de textura (TA) y unidades de filtrado de textura (TF). Las unidades de dirección de textura asignan texels a píxeles y pueden realizar modos de direccionamiento de textura. Las unidades de filtrado de textura realizan opcionalmente un filtrado de textura basado en hardware .
Una tubería es la arquitectura de la tarjeta gráfica, que proporciona una idea generalmente precisa de la potencia de cálculo de un procesador gráfico.
El término técnico pipeline no se acepta formalmente. Hay diferentes pipelines dentro de un procesador gráfico, ya que se realizan funciones independientes en un momento dado. Históricamente, se lo ha denominado procesador de píxeles conectado a una unidad de procesamiento de texto (TMU) dedicada. Una Geforce 3 tenía cuatro pipelines de píxeles, cada uno de los cuales tenía dos TMU. El resto del pipeline se encargaba de cuestiones como las operaciones de profundidad y fusión.
La ATI Radeon 9700 fue la primera en romper este molde, al colocar una serie de motores de sombreado de vértices independientes de los sombreadores de píxeles. La GPU R300 utilizada en la Radeon 9700 tenía cuatro sombreadores de vértices globales, pero dividía el resto del flujo de renderizado en dos (era, por así decirlo, de doble núcleo); cada mitad, llamada cuádruple, tenía cuatro sombreadores de píxeles, cuatro TMU y cuatro ROP.
Algunas unidades se utilizan más que otras y, en un esfuerzo por aumentar el rendimiento total del procesador, intentaron encontrar un "punto óptimo" en la cantidad de unidades necesarias para lograr una eficiencia óptima sin la necesidad de un exceso de silicio. En esta arquitectura, el nombre de canalización de píxeles perdió su significado, ya que los procesadores de píxeles ya no estaban conectados a unidades de procesamiento de píxeles individuales.
El sombreador de vértices se había desacoplado hacía mucho tiempo, comenzando con el R300, pero el sombreador de píxeles no era tan fácil de hacer, ya que requería datos de color (por ejemplo, muestras de textura) con los que trabajar y, por lo tanto, necesitaba estar estrechamente acoplado a una TMU.
Dicho acoplamiento se mantiene hasta el día de hoy, donde el motor de sombreado, compuesto de unidades capaces de ejecutar datos de vértices o píxeles, está estrechamente acoplado a una TMU pero tiene un despachador de barra transversal entre su salida y el banco de ROP.
El canal de salida de renderizado es un término heredado y, con más frecuencia, se lo denomina unidad de salida de renderizado . Su función es controlar el muestreo de píxeles (cada píxel es un punto adimensional), por lo que controla el antialiasing , cuando se fusiona más de una muestra en un píxel. Todos los datos renderizados deben viajar a través del ROP para poder escribirse en el búfer de cuadros , desde allí se pueden transmitir a la pantalla.
Por lo tanto, el ROP es donde la salida de la GPU se ensambla en una imagen de mapa de bits lista para mostrarse.
En GPGPU , se pueden utilizar mapas de textura en 1, 2 o 3 dimensiones para almacenar datos arbitrarios. Al proporcionar interpolación , la unidad de mapeo de textura proporciona un medio conveniente para aproximar funciones arbitrarias con tablas de datos.