Condividi tramite


Avvolgimento della texture

La disposizione delle texture modifica il modo di base in cui Direct3D rasterizza i poligoni testurizzati usando le coordinate specificate per ogni vertice. Durante la rasterizzazione di un poligono, il sistema esegue l'interpolazione tra le coordinate della texture in ogni vertice del poligono per determinare i texel da usare per ogni pixel del poligono. Normalmente, il sistema considera la texture come un piano 2D, interpolando nuovi texel prendendo il percorso più breve dal punto A all'interno di una texture al punto B. Se il punto A rappresenta la posizione u, v (0,8, 0,1) e il punto B è in corrispondenza (0,1,0,1), la linea di interpolazione è simile al diagramma seguente.

diagramma di una linea di interpolazione tra due punti

Si noti che la distanza più breve tra A e B in questa illustrazione viene eseguita approssimativamente attraverso il centro della texture. L'abilitazione del wrapping delle coordinate u-texture o v-texture cambia il modo in cui Direct3D percepisce il percorso più breve tra le coordinate della texture nella direzione u e v Per definizione, il wrapping delle texture fa sì che il rasterizzatore prenda il percorso più breve tra i set di coordinate della texture, presupponendo che 0,0 e 1,0 siano coincidenti. L'ultimo bit è la parte difficile: si può immaginare che l'abilitazione del wrapping delle texture in una direzione fa sì che il sistema la consideri come se fosse avvolta intorno a un cilindro. Si consideri ad esempio il diagramma seguente.

diagramma di una trama e due punti avvolti intorno a un cilindro

La figura precedente mostra come il wrapping nella direzione u influisce sul modo in cui il sistema interpola le coordinate della texture. Utilizzando gli stessi punti dell'esempio per le texture normali, o non avvolte, si può notare che il percorso più breve tra i punti A e B non è più attraverso il centro della texture, ma adesso attraversa il confine dove 0,0 e 1,0 co-esistono. Il wrapping nella direzione v è simile, a eccezione del fatto che avvolge la texture intorno a un cilindro che si trova sul lato. Il wrapping sia nella direzione u che nella direzione virtuale è più complesso. In questa situazione, è possibile immaginare la texture come toro o anello.

L'applicazione pratica più comune per il wrapping delle texture consiste nell'eseguire il mapping dell'ambiente. In genere, un oggetto con texture dotato di una mappa dell'ambiente appare molto riflettente, mostrando un'immagine speculare dell'ambiente circostante dell'oggetto nella scena. Per il bene di questa discussione, immagine di una stanza con quattro pareti, ognuna dipinta con una lettera R, G, B, Y e i colori corrispondenti: rosso, verde, blu e giallo. La mappa dell'ambiente per una stanza talmente semplice potrebbe essere simile alla figura successiva.

illustrazione di strisce verticali di rosso, verde, blu e giallo

Occorre immaginare che il soffitto della stanza sia tenuto in piedi da un pilastro perfettamente riflettente, a quattro lati. Mappare la texture della mappa dell'ambiente sul pilastro è semplice; far sembrare che il pilastro rifletta le lettere e i colori non è altrettanto facile. Il diagramma successivo mostra una cornice di filo del pilastro con le coordinate di texture applicabili elencate nei vertici superiori. La giunzione in cui la disposizione attraversa i bordi della texture viene visualizzata con una linea tratteggiata.

diagramma di un rettangolo con una linea tratteggiata bisecting

Con il wrapping abilitato nella direzione u, il pilastro con texture mostra i colori e i simboli della mappa dell'ambiente in modo appropriato e, nella parte anteriore della texture, il rasterizzatore sceglie correttamente il percorso più breve tra le coordinate della texture, presupponendo che le coordinate u 0.0 e 1.0 condividono la stessa posizione. Il pilastro con texture è simile alla figura successiva.

illustrazione di un pilastro costituito da quadranti rossi, verdi, blu e gialli

Se la disposizione delle texture non è abilitata, il rasterizzatore non esegue l'interpolazione nella direzione necessaria per generare un'immagine credibile e riflessa. Invece, l'area dinanzi al pilastro contiene una versione compressa orizzontalmente dei texel tra le coordinate u 0.175 e 0.875, mentre passano attraverso il centro della texture. L'effetto wrap è rovinato.

Non confondere la disposizione delle texture con le modalità di indirizzamento delle texture denominate in modo analogo. La disposizione delle texture viene eseguita prima del loro indirizzamento. Assicurarsi che i dati di wrapping della texture non contengano coordinate al di fuori dell'intervallo di [0,0, 1,0] in quanto questo produrrà risultati non definiti. Per altre informazioni sull'indirizzamento delle texture, vedere Modalità di indirizzamento delle texture.

Disposizione mappa di spostamento

Le mappe di spostamento vengono interpolate dal motore a mosaico. Poiché non è possibile specificare la modalità di ritorno a capo per il motore a mosaico, non è possibile eseguire il wrapping delle texture con le mappe di spostamento. Un'applicazione è in grado di usare un set di vertici che forza l'interpolazione a capo in qualsiasi direzione. L'applicazione può anche specificare l'interpolazione da eseguire come semplice interpolazione lineare.

Texture