Compartir a través de


Modos de direccionamiento de texturas

La aplicación Direct3D puede asignar coordenadas de textura a cualquier vértice de cualquier primitivo. Normalmente, las coordenadas de textura u y v que se asignan a un vértice están en el intervalo de 0,0 a 1,0 inclusive. Sin embargo, mediante la asignación de coordenadas de textura fuera de ese intervalo, puede crear ciertos efectos especiales de texturización. .

Controla lo que Direct3D hace con coordenadas de textura que están fuera del intervalo [0.0, 1.0] estableciendo el modo de direccionamiento de textura. Por ejemplo, puede hacer que la aplicación establezca el modo de direccionamiento de textura para que una textura esté en mosaico en un primitivo.

Direct3D permite a las aplicaciones realizar el ajuste de texturas. Consulte Ajuste de texturas.

Al habilitar el ajuste de textura de forma eficaz, las coordenadas de textura fuera del intervalo [0.0, 1.0] no son válidas, y el comportamiento para rasterizar estas coordenadas de textura no está definida en este caso. Cuando el ajuste de textura está habilitado, no se usan los modos de direccionamiento de textura. Tenga cuidado de que la aplicación no especifique coordenadas de textura inferiores a 0,0 o superior a 1,0 cuando se habilite el ajuste de texturas.

Resumen de los modos de direccionamiento de textura

Modo de direccionamiento de textura Descripción
Encapsular Repite la textura en cada unión de enteros.
Reflejo Refleja la textura en cada límite entero.
Clamp Sujeta las coordenadas de textura al rango [0.0, 1.0] ; El modo de abrazadera aplica la textura una vez y, a continuación, muestra el color de los píxeles perimetrales.
Color del borde Usa un color de borde arbitrario para cualquier coordenada de textura fuera del intervalo de 0,0 a 1,0, ambos incluidos.

 

Ajuste del modo de dirección de textura

El modo de dirección de textura wrap hace que Direct3D repita la textura en cada unión de enteros.

Supongamos, por ejemplo, que la aplicación crea un primitivo cuadrado y especifica las coordenadas de textura de (0.0,0.0), (0.0,3.0), (3.0,3.0) y (3.0,0.0). Si se establece el modo de direccionamiento de textura en "Wrap", la textura se aplica tres veces en las direcciones u y v, como se muestra en la ilustración siguiente.

ilustración de una textura de cara ajustada en la dirección u y en la dirección v

Contrasta esto con el siguiente modo de dirección de textura reflejada.

Modo de dirección de textura reflejada

El modo de dirección de textura reflejada hace que Direct3D refleje la textura en cada límite entero.

Supongamos, por ejemplo, que la aplicación crea un primitivo cuadrado y especifica las coordenadas de textura de (0.0,0.0), (0.0,3.0), (3.0,3.0) y (3.0,0.0). Si se establece el modo de direccionamiento de textura en "Mirror", la textura se aplica tres veces en las direcciones u y v. Todas las demás filas y columnas a las que se aplica es una imagen reflejada de la fila o columna anterior, como se muestra en la ilustración siguiente.

Ilustración de imágenes reflejadas en una cuadrícula 3x3

Contraste esto con el modo de dirección de textura de ajuste anterior.

Modo de dirección de textura de abrazadera

El modo de dirección de textura Clamp hace que Direct3D ajuste las coordenadas de textura al rango [0.0, 1.0]. El modo de abrazadera aplica la textura una vez y, a continuación, muestra el color de los píxeles perimetrales.

Supongamos que la aplicación crea un primitivo cuadrado y asigna coordenadas de textura de (0.0,0.0), (0.0,3.0), (3.0,3.0) y (3.0,0.0) a los vértices del primitivo. Si se establece el modo de direccionamiento de textura en "Clamp", la textura se aplica una vez. Los colores de píxel en la parte superior de las columnas y el final de las filas se extienden a la parte superior y derecha del primitivo respectivamente.

En la ilustración siguiente se muestra una textura fija.

ilustración de una textura y una textura fija

Modo de dirección de textura de color de borde

El modo de dirección de textura color de borde hace que Direct3D use un color arbitrario, conocido como color de borde, para las coordenadas de textura fuera del intervalo de 0,0 a 1,0, ambos incluidos.

En la ilustración siguiente, la aplicación especifica que la textura se aplica al primitivo mediante un borde rojo.

ilustración de una textura y una textura con un borde rojo

Limitaciones del dispositivo

Aunque el sistema generalmente permite coordenadas de textura fuera del intervalo de 0.0 y 1.0, inclusivas, limitaciones de hardware a menudo afectan a la distancia fuera de esa coordenada de textura de rango. Un dispositivo de representación comunica el límite de la gama completa de coordenadas de textura permitidas por el dispositivo cuando se recuperan las funcionalidades del dispositivo.

Por ejemplo, si este valor es 128, las coordenadas de textura de entrada deben mantenerse en el intervalo -128.0 a +128.0. Pasar vértices con coordenadas de textura fuera de este intervalo no es válido. La misma restricción se aplica a las coordenadas de textura generadas como resultado de las transformaciones automáticas de generación de coordenadas de textura y coordenadas de textura.

Las limitaciones de repetición de texturas pueden depender del tamaño de la textura indizada por las coordenadas de textura. En ese caso, suponer que la dimensión de textura es 32 y el intervalo de coordenadas de textura permitido por el dispositivo es 512, el intervalo de coordenadas de textura válido real sería 512/32 = 16, por lo que las coordenadas de textura de este dispositivo deben estar dentro del intervalo de -16.0 a +16.0.

Texturas