Disposizione delle trameTexture wrapping

La disposizione delle trame modifica il metodo di base in cui Direct3D rasterizza i poligoni con trame utilizzando le coordinate della trama specificate per ogni vertice.Texture wrapping changes the basic way that Direct3D rasterizes textured polygons using the texture coordinates specified for each vertex. Durante la rasterizzazione di un poligono, il sistema esegue l'interpolazione tra le coordinate della trama in ciascuno dei vertici del poligono per determinare i texel che devono essere utilizzati per ogni pixel del poligono.While rasterizing a polygon, the system interpolates between the texture coordinates at each of the polygon's vertices to determine the texels that should be used for every pixel of the polygon. In genere, il sistema tratta la trama come un piano 2D, eseguendo l'interpolazione di nuovi texel seguendo il percorso più breve dal punto A all'interno di una trama al punto B. Se il punto A rappresenta la posizione u, v (0,8, 0,1) e il punto B si trova a (0,1,0,1), la linea dell'interpolazione è simile a quella del diagramma seguente.Normally, the system treats the texture as a 2D plane, interpolating new texels by taking the shortest route from point A within a texture to point B. If point A represents the u, v position (0.8, 0.1), and point B is at (0.1,0.1), the line of interpolation looks like the following diagram.

diagramma di una linea di interpolazione tra due punti

La distanza più breve tra A e B in questa illustrazione è quella che passa approssimativamente attraverso la parte centrale della trama.Note that the shortest distance between A and B in this illustration runs roughly through the middle of the texture. L'abilitazione della disposizione delle coordinate della trama u o v modifica il modo in cui Direct3D percepisce il percorso più breve tra le coordinate delle trame nella direzione u e nella direzione v.Enabling u-texture or v-texture coordinate wrapping changes how Direct3D perceives the shortest route between texture coordinates in the u-direction and v-direction. Per definizione, la disposizione delle trame fa sì che l'unità di rasterizzazione segua il percorso più breve tra set di coordinate della trama, supponendo che 0,0 e 1,0 coincidano.By definition, texture wrapping causes the rasterizer to take the shortest route between texture coordinate sets, assuming that 0.0 and 1.0 are coincident. L'ultima parte più difficile è: È possibile immaginare che l'abilitazione della trama il wrapping in un'unica direzione, il sistema considera una trama come se ne sono stati eseguito il wrapping intorno a un cilindro.The last bit is the tricky part: You can imagine that enabling texture wrapping in one direction causes the system to treat a texture as though it were wrapped around a cylinder. Consideriamo ad esempio il diagramma seguente.For example, consider the following diagram.

diagramma di una trama e due punti disposti attorno a un cilindro

Nella figura precedente viene illustrato come la disposizione nella direzione u influenzi come il sistema esegue l'interpolazione delle coordinate della trama.The preceding illustration shows how wrapping in the u - direction affects how the system interpolates texture coordinates. Utilizzando gli stessi punti dell'esempio per le trame normali o non disposte, è possibile vedere che il percorso più breve tra i punti A e B non è più lungo il centro della trama; ora si trova lungo il bordo in cui 0,0 e 1,0 coesistono.Using the same points as in the example for normal, or nonwrapped, textures, you can see that the shortest route between points A and B is no longer across the middle of the texture; it's now across the border where 0.0 and 1.0 exist together. La disposizione nella direzione v è simile, ad eccezione del fatto che esegue il wrapping della trama attorno a un cilindro poggiato su un lato.Wrapping in the v-direction is similar, except that it wraps the texture around a cylinder that is lying on its side. La disposizione in entrambe le direzioni u e v è più complessa.Wrapping in both the u-direction and v-direction is more complex. In questo caso, è possibile immaginare la trama come anello o una ciambella.In this situation, you can envision the texture as a torus, or doughnut.

L'applicazione pratica più comune per la disposizione delle trame è eseguire il mapping dell'ambiente.The most common practical application for texture wrapping is to perform environment mapping. In genere, un oggetto con trama con una mappa dell'ambiente mostra molti riflessi, mostrando un'immagine riflessa dell'ambiente circostante l'oggetto nella scena.Usually, an object textured with an environment map appears very reflective, showing a mirrored image of the object's surroundings in the scene. Ai fini di questa discussione, immagina una sala con quattro pareti, e su ciascuna di esse sono riportate la lettera R, G, B, Y e i colori corrispondenti: rosso, verde, blu e giallo.For the sake of this discussion, picture a room with four walls, each one painted with a letter R, G, B, Y and the corresponding colors: red, green, blue, and yellow. La mappa dell'ambiente per una stanza così semplice potrebbe essere simile a quella della figura seguente.The environment map for such a simple room might look like the following illustration.

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

Immagina che il soffitto della stanza sia tenuto a da un pilastro con quattro lati perfettamente riflettente.Imagine that the room's ceiling is held up by a perfectly reflective, four-sided, pillar. Il mapping della trama della mappa dell'ambiente al pilastro è semplice; far sembrare che il pilastro stia riflettendo le lettere e i colori non è altrettanto semplice.Mapping the environment map texture to the pillar is simple; making the pillar look as though it is reflecting the letters and colors is not as easy. Il diagramma seguente mostra un wireframe del pilastro con le coordinate di trama applicabili riportate in prossimità dei vertici superiori.The following diagram shows a wire frame of the pillar with the applicable texture coordinates listed near the top vertices. La linea lungo la quale il wrapping si interseca con i bordi della trama è riportata con una linea tratteggiata.The seam where wrapping will cross the edges of the texture is shown with a dotted line.

diagramma di un rettangolo con una linea tratteggiata bisecante

Con il wrapping abilitato nella direzione u, il pilastro con trama mostra i colori e i simboli della mappa dell'ambiente in modo appropriato e, alla linea di giunzione nella parte anteriore della trama, l'unità di rasterizzazione sceglie correttamente il percorso più breve tra le coordinate della trama, presupponendo che le coordinate u 0,0 e 1,0 condividano la stessa posizione.With wrapping enabled in the u-direction, the textured pillar shows the colors and symbols from the environment map appropriately and, at the seam in the front of the texture, the rasterizer properly chooses the shortest route between the texture coordinates, assuming that u-coordinates 0.0 and 1.0 share the same location. Il pilastro con trama è simile a quello della figura seguente.The textured pillar looks like the following illustration.

illustrazione di un pilastro costituito da quadranti rosso, verde, blu e giallo

Se la posizione delle trame non è abilitata, l'unità di rasterizzazione non esegue l'interpolazione nella direzione necessaria per generare un'immagine riflessa credibile.If texture wrapping isn't enabled, the rasterizer does not interpolate in the direction needed to generate a believable, reflected image. Invece, l'area nella parte anteriore del pilastro contiene una versione orizzontalmente compressa dei texel tra le coordinate u 0,175 e 0,875, al passaggio attraverso il centro della trama.Rather, the area at the front of the pillar contains a horizontally compressed version of the texels between u-coordinates 0.175 and 0.875, as they pass through the center of the texture. L'effetto di wrapping è compromesso.The wrap effect is ruined.

Non confondere la disposizione delle trame con le modalità di gestione delle trame con nome simile.Do not confuse texture wrapping with the similarly named texture addressing modes. La disposizione delle trame viene eseguita prima della gestione delle trame.Texture wrapping is performed before texture addressing. Verificare che la trama il wrapping dei dati non contiene le coordinate di trama di fuori dell'intervallo di [0.0, 1.0] perché ciò produrrà risultati non definiti.Be sure the texture wrapping data does not contain any texture coordinates outside of the range of [0.0, 1.0] because this will produce undefined results. Per ulteriori informazioni sulla gestione delle trame, vedi Modalità di gestione delle trame.For more information about texture addressing, see Texture addressing modes.

Mappa di spostamento ritorno a capoDisplacement map wrapping

Le mappe di spostamento sono interpolate dal motore di tassellatura.Displacement maps are interpolated by the tesselation engine. Poiché non è possibile specificare la modalità di wrapping per il motore di tassellatura, la disposizione delle trame non può essere eseguita con le mappe di spostamento.Because the wrap mode cannot be specified for the tessellation engine, texture wrapping cannot be performed with displacement maps. Un'applicazione è in grado di usare un set di vertici che impone all'interpolazione di eseguire il wrapping in qualsiasi direzione.An application is able to use a set of vertices that forces the interpolation to wrap in any direction. L'applicazione può inoltre specificare che l'interpolazione venga eseguita come una semplice interpolazione lineare.The application can also specify the interpolation to be done as a simple linear interpolation.

Argomenti correlatiRelated topics

TrameTextures