Modalità di gestione delle trameTexture addressing modes

L'applicazione Direct3D può assegnare le coordinate delle trame a qualsiasi vertice di qualsiasi primitiva.Your Direct3D application can assign texture coordinates to any vertex of any primitive. In genere, le coordinate delle trame u e v assegnate a un vertice sono comprese nell'intervallo 0,0 - 1,0 inclusivo.Typically, the u- and v-texture coordinates that you assign to a vertex are in the range of 0.0 to 1.0 inclusive. Tuttavia, assegnando coordinate delle trame esterne a questo intervallo, è possibile creare alcuni effetti speciali relativi alle trame.However, by assigning texture coordinates outside that range, you can create certain special texturing effects. ..

Controllare ciò che Direct3D non con le coordinate di trama che si trovano all'esterno di [0.0, 1.0] intervallo impostando la modalità di indirizzamento di trama.You control what Direct3D does with texture coordinates that are outside the [0.0, 1.0] range by setting the texture addressing mode. Ad esempio, si può chiedere all'applicazione di impostare la modalità di gestione delle trame in modo che una trama venga affiancata lungo una primitiva.For instance, you can have your application set the texture addressing mode so that a texture is tiled across a primitive.

Direct3D consente alle applicazioni di eseguire la disposizione delle trame.Direct3D enables applications to perform texture wrapping. Vedi Disposizione delle trame.See Texture wrapping.

Abilitando la trama in modo efficace di wrapping delle coordinate di trama di fuori di [0.0, 1.0] intervallo non valido e il comportamento per la rasterizzazione tali coordinate di trama morosità è definita in questo caso.Enabling texture wrapping effectively makes texture coordinates outside the [0.0, 1.0] range invalid, and the behavior for rasterizing such delinquent texture coordinates is undefined in this case. Quando è abilitata la disposizione delle trame, non vengono usate le modalità di gestione delle trame.When texture wrapping is enabled, texture addressing modes are not used. Prestare attenzione affinché l'applicazione non specifichi coordinate delle trame inferiori a 0,0 o superiori a 1,0 quando è abilitata la disposizione delle trame.Take care that your application does not specify texture coordinates lower than 0.0 or higher than 1.0 when texture wrapping is enabled.

Riepilogo della texture di indirizzamentoSummary of the texture addressing modes

Modalità di gestione delle trameTexture addressing mode DescrizioneDescription
WrapWrap Ripete la trama a ogni giunzione di numero intero.Repeats the texture on every integer junction.
MirrorMirror Esegue il mirroring della trama a ogni limite di numero intero.Mirrors the texture at every integer boundary.
ClampClamp Graffe le coordinate di trama per la [0.0, 1.0] intervallo; Modalità Clamp applicato una sola volta la trama, quindi distorce il colore del pixel dei bordi.Clamps your texture coordinates to the [0.0, 1.0] range; Clamp mode applies the texture once, then smears the color of edge pixels.
Border ColorBorder Color Usa un colore del bordo arbitrario per tutte le coordinate della trama esterne all'intervallo 0,0 - 1,0, inclusivo.Uses an arbitrary border color for any texture coordinates outside the range of 0.0 through 1.0, inclusive.

 

Eseguire il wrapping di modalità di indirizzamento della tramaWrap texture address mode

La modalità di gestione delle trame Wrap determina la ripetizione da parte di Direct3D della trama a ogni giunzione di numero intero.The Wrap texture address mode makes Direct3D repeat the texture on every integer junction.

Supponiamo, ad esempio, che l'applicazione crei un quadrato primitivo e specifichi le coordinate della trama pari a (0,0,0,0), (0,0,3,0), (3,0,3,0) e (3,0,0,0).Suppose, for example, your application creates a square primitive and specifies texture coordinates of (0.0,0.0), (0.0,3.0), (3.0,3.0), and (3.0,0.0). L'impostazione della modalità di gestione delle trame su "Wrap" determina l'applicazione della trama tre volte in entrambe le direzioni u e v, come illustrato nella figura seguente.Setting the texture addressing mode to "Wrap" results in the texture being applied three times in both the u-and v-directions, as shown in the following illustration.

illustrazione della trama di un viso disposta nella direzione u e nella direzione v

Confrontiamola con la modalità di gestione delle trame Mirror seguente.Contrast this with the following Mirror texture address mode.

Modalità di indirizzo mirror tramaMirror texture address mode

La modalità di gestione delle trame Mirror determina il mirroring eseguito da Direct3D della trama a ogni limite di numero intero.The Mirror texture address mode causes Direct3D to mirror the texture at every integer boundary.

Supponiamo, ad esempio, che l'applicazione crei un quadrato primitivo e specifichi le coordinate della trama pari a (0,0,0,0), (0,0,3,0), (3,0,3,0) e (3,0,0,0).Suppose, for example, your application creates a square primitive and specifies texture coordinates of (0.0,0.0), (0.0,3.0), (3.0,3.0), and (3.0,0.0). L'impostazione della modalità di gestione delle trame su "Mirror" determina l'applicazione della trama tre volte in entrambe le direzioni u e v.Setting the texture addressing mode to "Mirror" results in the texture being applied three times in both the u- and v-directions. Una ogni due righe e una ogni due colonne alla quale è applicata è un'immagine speculare della riga o colonna precedente, come illustrato nella figura seguente.Every other row and column that it is applied to is a mirror image of the preceding row or column, as shown in the following illustration.

illustrazione di immagini speculari in una griglia 3x3

Confrontiamola con la modalità di gestione delle trame Wrap precedente.Contrast this with the previous Wrap texture address mode.

Modalità di indirizzamento della trama ClampClamp texture address mode

Fa in modo che la modalità di indirizzamento Clamp trama Direct3D da fissare le coordinate di trama per la [0.0, 1.0] intervallo; Modalità Clamp applicato una sola volta la trama, quindi distorce il colore del pixel dei bordi.The Clamp texture address mode causes Direct3D to clamp your texture coordinates to the [0.0, 1.0] range; Clamp mode applies the texture once, then smears the color of edge pixels.

Supponiamo che l'applicazione crei un quadrato primitivo e assegni le coordinate di trama (0,0,0,0), (0,0,3,0), (3,0,3,0) e (3,0,0,0) ai vertici della primitiva.Suppose that your application creates a square primitive and assigns texture coordinates of (0.0,0.0), (0.0,3.0), (3.0,3.0), and (3.0,0.0) to the primitive's vertices. L'impostazione della modalità di gestione delle trame "Clamp" implica che la trama venga applicata una sola volta.Setting the texture addressing mode to "Clamp" results in the texture being applied once. I colori pixel in alto alle colonne e alla fine sono delle righe vengono estesi all'inizio e a destra della primitiva rispettivamente.The pixel colors at the top of the columns and the end of the rows are extended to the top and right of the primitive respectively.

La figura seguente mostra una trama fissata.The following illustration shows a clamped texture.

illustrazione di una trama e una trama fissata

Modalità di indirizzamento di colore del bordo della tramaBorder Color texture address mode

La modalità di gestione delle trame Border Color fa sì che Direct3D usi un colore arbitrario, noto come colore del bordo, per tutte le coordinate della trama esterne all'intervallo compreso tra 0,0 e 1,0 inclusi.The Border Color texture address mode causes Direct3D to use an arbitrary color, known as the border color, for any texture coordinates outside the range of 0.0 through 1.0, inclusive.

Nella figura seguente, l'applicazione specifica che la trama venga applicata alla primitiva usando un bordo rosso.In the following illustration, the application specifies that the texture be applied to the primitive using a red border.

illustrazione di una trama e una trama con un bordo rosso

Limitazioni del dispositivoDevice limitations

Anche se, in genere, il sistema consente coordinate delle trame esterne all'intervallo compreso tra 0,0 e 1,0 inclusi, le limitazioni dell'hardware spesso influiscono su quanto le coordinate della trame possano fuoriuscire da tale intervallo.Although the system generally allows texture coordinates outside the range of 0.0 and 1.0, inclusive, hardware limitations often affect how far outside that range texture coordinates can be. Un dispositivo di rendering comunica il limite per l'intero intervallo di coordinate delle trame consentito dal dispositivo quando si recuperano le funzionalità del dispositivo.A rendering device communicates the limit for the full range of texture coordinates allowed by the device, when you retrieve the device's capabilities.

Ad esempio, se questo valore è 128, le coordinate delle trame di input devono essere mantenute nell'intervallo compreso tra -128,0 e +128,0.For instance, if this value is 128, then the input texture coordinates must be kept in the range -128.0 to +128.0. Il passaggio di vertici con coordinate di trame non comprese in questo intervallo non è valido.Passing vertices with texture coordinates outside this range is invalid. La stessa limitazione si applica alle coordinate di trame generate in seguito alla generazione di coordinate di trame automatica e alle trasformazioni delle coordinate delle trame.The same restriction applies to the texture coordinates generated as a result of automatic texture coordinate generation and texture coordinate transformations.

Le limitazioni di ripetizione delle trame possono dipendere dalla dimensione della trama indicizzata dalle coordinate della trama.Texture repeating limitations can depend on the size of the texture indexed by the texture coordinates. In tal caso, supponendo che la dimensione della trama sia 32 e l'intervallo di coordinate della trama consentito dal dispositivo sia 512, l'intervallo di coordinate della trama valido effettivo sarebbe 512/32 = 16, pertanto le coordinate delle trame di questo dispositivo devono essere comprese nell'intervallo -16,0 - +16,0.In that case, supposing the texture dimension is 32, and the range of texture coordinates allowed by the device is 512, the actual valid texture coordinate range would therefore be 512/32 = 16, so the texture coordinates for this device must be within the range of -16.0 to +16.0.

Argomenti correlatiRelated topics

TrameTextures