Condividi tramite


Modalità di indirizzamento delle texture

L'applicazione Direct3D può assegnare coordinate di texture a qualsiasi vertice di qualsiasi primitiva. In genere, le coordinate u e v-texture assegnate a un vertice si trovano nell'intervallo compreso tra 0,0 e 1,0 incluso. Tuttavia, assegnando coordinate di texture al di fuori di tale intervallo, puoi creare determinati effetti speciali di testurizzazione. .

Puoi controllare le operazioni eseguite da Direct3D con coordinate di texture esterne all'intervallo [0.0, 1.0] impostando la modalità di indirizzamento della texture. Ad esempio, è possibile impostare l'applicazione sulla modalità di indirizzamento delle texture in modo che una texture venga affiancata in una primitiva.

Direct3D consente alle applicazioni di eseguire il wrapping delle texture. Consultare Disposizione delle texture.

Abilitando la disposizione delle texture, le coordinate della texture vengono rese effettivamente non valide all'esterno dell'intervallo [0.0, 1.0] e il comportamento per la rasterizzazione di tali coordinate di texture inadempienti non è definito in questo caso. Quando la disposizione delle texture è abilitata, le modalità di indirizzamento delle texture non vengono usate. Accertarsi che l'applicazione non specifichi le coordinate della texture inferiori a 0,0 o superiori a 1,0 quando la disposizione della texture è abilitata.

Riepilogo delle modalità di indirizzamento delle texture

Modalità di indirizzamento delle texture Descrizione
Wrapping Ripete la texture su ogni giunzione intera.
Mirror Rispecchia la texture in corrispondenza di ogni limite intero.
Clamp Blocca le coordinate della texture all'intervallo [0,0, 1,0] ; La modalità di blocco applica la texture una sola volta, quindi spalma il colore dei pixel del bordo.
Colore bordo Usa un colore di bordo arbitrario per qualsiasi coordinata di texture all'esterno dell'intervallo compreso tra 0,0 e 1,0 incluso.

 

Eseguire il wrapping della modalità indirizzo texture

La modalità di indirizzo della texture Wrap rende Direct3D ripetere la texture su ogni giunzione intera.

Si supponga, ad esempio, che l'applicazione crei una primitiva quadrata e specifichi le coordinate di texture di (0.0,0.0), (0.0,3.0), (3.0,3.0) e (3.0,0.0). L'impostazione della modalità di indirizzamento delle texture su "Wrap" comporta l'applicazione della texture tre volte in entrambe le direzioni u e v, come illustrato nella figura seguente.

illustrazione di una trama del viso avvolta nella direzione u e nella direzione v

Contrasta con la seguente Modalità di indirizzo della trama mirror.

Modalità indirizzo texture mirror

La modalità indirizzo texture mirror fa in modo che Direct3D eserciti la texture in corrispondenza di ogni limite intero.

Si supponga, ad esempio, che l'applicazione crei una primitiva quadrata e specifichi le coordinate di texture di (0.0,0.0), (0.0,3.0), (3.0,3.0) e (3.0,0.0). L'impostazione della modalità di indirizzamento della texture su "Mirror" comporta l'applicazione della texture tre volte in entrambe le direzioni u e v. Ogni altra riga e colonna a cui viene applicata è un'immagine speculare della riga o della colonna precedente, come illustrato nella figura seguente.

illustrazione delle immagini mirror in una griglia 3x3

Contrasta con la precedente Modalità di indirizzo della texture a capo.

Modalità indirizzo texture di blocco

La modalità indirizzo della texture di blocco fa sì che Direct3D blocca le coordinate della texture all'intervallo [0.0, 1.0] ; La modalità di blocco applica la texture una sola volta, quindi sfuma il colore dei pixel del bordo.

Si suppone che l'applicazione crei una primitiva quadrata e assegni coordinate di texture di (0,0,0,0,3,0), (3,0,3,0) e (3,0,0,0) ai vertici della primitiva. L'impostazione della modalità di indirizzamento della texture su "Clamp" comporta l'applicazione della texture una sola volta. I colori pixel nella parte superiore delle colonne e la fine delle righe vengono estesi rispettivamente all'inizio e a destra della primitiva.

Nella figura seguente viene illustrata una texture bloccata.

illustrazione di una trama e di una trama bloccata

Modalità indirizzo texture colore bordo

La modalità di indirizzo della texture Colore di bordo fa sì che Direct3D usi un colore arbitrario, noto come il Colore di bordo, per qualsiasi coordinata di texture al di fuori dell'intervallo compreso tra 0,0 e 1,0, incluso.

Nell'illustrazione seguente, l'applicazione specifica che la texture viene applicata alla primitiva usando un bordo rosso.

illustrazione di una trama e di una trama con un bordo rosso

Limitazioni del dispositivo

Anche se il sistema in genere consente coordinate di texture al di fuori dell'intervallo di 0,0 e 1,0, incluse, le limitazioni hardware spesso influiscono sulla distanza delle coordinate della texture dell'intervallo. Un dispositivo di rendering comunica il limite per l'intera gamma di coordinate di texture consentite dal dispositivo, quando si recuperano le funzionalità del dispositivo.

Ad esempio, se questo valore è 128, le coordinate della texture di input devono essere mantenute nell'intervallo da -128.0 a +128.0. Il passaggio di vertici con coordinate di texture esterne a questo intervallo non è valido. La stessa restrizione si applica alle coordinate della texture generate in seguito alla generazione automatica delle coordinate della texture e alle trasformazioni delle coordinate della texture.

I limiti di ripetizione delle texture possono dipendere dalle dimensioni della texture indicizzate dalle sue coordinate. In tal caso, supponendo che la dimensione della texture sia 32 e l'intervallo di coordinate di texture consentite dal dispositivo sia 512, l'intervallo effettivo di coordinate della texture valida sarebbe quindi 512/32 = 16, quindi le coordinate della texture per questo dispositivo devono rientrare in un intervallo compreso tra -16,0 e +16,0.

Texture