Compartir a través de


Ajuste de textura

El ajuste de texturas cambia la forma básica en que Direct3D rasteriza polígonos con textura mediante las coordenadas de textura especificadas para cada vértice. Al rasterizar un polígono, el sistema interpola entre las coordenadas de textura en cada uno de los vértices del polígono para determinar los texeles que se deben usar para cada píxel del polígono. Normalmente, el sistema trata la textura como un plano 2D, interpolando nuevos elementos de textura tomando la ruta más corta desde el punto A dentro de una textura hasta el punto B. Si el punto A representa la posición u, v (0,8, 0,1) y el punto B está en (0,1,0,1), la línea de interpolación es similar al diagrama siguiente.

diagrama de una línea de interpolación entre dos puntos

Tenga en cuenta que la distancia más corta entre A y B en esta ilustración pasa aproximadamente por el medio de la textura. Habilitar el ajuste de las coordenadas de textura u o v cambia la forma en que Direct3D percibe la ruta más corta entre las coordenadas de textura en la dirección u y la dirección v. Por definición, la envoltura de textura hace que el rasterizador tome la ruta más corta entre los conjuntos de coordenadas de textura, suponiendo que 0,0 y 1,0 se consideren coincidentes. El último bit es la parte complicada: Puede imaginar que habilitar el ajuste de texturas en una dirección hace que el sistema trate una textura como si estuviera ajustada alrededor de un cilindro. Por ejemplo, considere el siguiente diagrama.

diagrama de una textura y dos puntos envueltos alrededor de un cilindro

En la ilustración anterior se muestra cómo el ajuste en la dirección u afecta a cómo el sistema interpola las coordenadas de las texturas. Con los mismos puntos que en el ejemplo para texturas normales, o no envueltas, se puede ver que la ruta más corta entre los puntos A y B ya no está a través del centro de la textura; está ahora a través del borde donde 0,0 y 1,0 coexisten. El envoltorio en la dirección v es similar, salvo que envuelve la textura alrededor de un cilindro que está acostado de lado. El ajuste en la dirección u y en la dirección v es más complejo. En esta situación, puedes imaginar la textura como un toro o rosquilla.

La aplicación práctica más común para el ajuste de texturas es realizar la asignación de entornos. Normalmente, un objeto con textura con un mapa de entorno aparece muy reflectante, mostrando una imagen reflejada del entorno del objeto en la escena. Para este debate, imagine una sala con cuatro paredes, cada una pintada con una letra R, G, B, Y y los colores correspondientes: rojo, verde, azul y amarillo. El mapa de entorno para una habitación tan sencilla podría parecerse a la siguiente ilustración.

ilustración de franjas verticales de rojo, verde, azul y amarillo

Imagine que el techo de la habitación está mantenido por un pilar perfectamente reflectante, de cuatro lados. La asignación de la textura del mapa del entorno al pilar es sencilla; hacer que el pilar parezca que refleja las letras y los colores no es tan fácil. En el diagrama siguiente se muestra un marco de alambre del pilar con las coordenadas de textura aplicables enumeradas cerca de los vértices superiores. La unión donde la envoltura cruzará los bordes de la textura se muestra con una línea de puntos.

diagrama de rectángulo con una línea de puntos bisecante

Con la envoltura habilitada en la dirección u, el pilar texturizado muestra los colores y símbolos del mapa del entorno de manera adecuada y, en la unión frontal de la textura, el rasterizador elige correctamente la ruta más corta entre las coordenadas de textura, asumiendo que las coordenadas u 0.0 y 1.0 representan la misma ubicación. El pilar con textura es similar a la siguiente ilustración.

ilustración de un pilar que consta de cuadrantes rojo, verde, azul y amarillo

Si el ajuste de textura no está habilitado, el rasterizador no interpola en la dirección necesaria para generar una imagen reflejada y creíble. En su lugar, el área situada en la parte delantera del pilar contiene una versión comprimida horizontalmente de los texeles entre las coordenadas u 0.175 y 0.875, mientras pasan por el centro de la textura. El efecto de envolver está arruinado.

No confunda el ajuste de texturas con los modos de direccionamiento de texturas con nombre similar. La envoltura de textura se realiza antes del direccionamiento de texturas. Asegúrese de que los datos de ajuste de textura no contienen ninguna coordenada de textura fuera del intervalo de [0.0, 1.0] porque esto generará resultados indefinidos. Para obtener más información sobre el direccionamiento de texturas, consulte Modos de direccionamiento de textura.

ajuste del mapa de desplazamiento de

Los mapas de desplazamiento se interpolan mediante el motor de teselación. Dado que no se puede especificar el modo de envoltura para el motor de teselación, no se puede realizar la envoltura de texturas con mapas de desplazamiento. Una aplicación puede usar un conjunto de vértices que obliga a la interpolación a encapsularse en cualquier dirección. La aplicación también puede especificar la interpolación que se va a realizar como una interpolación lineal simple.

Texturas