Condividi tramite


Modalità di indirizzamento trama (Direct3D 9)

L'applicazione Direct3D può assegnare coordinate di trama a qualsiasi vertice di qualsiasi primitiva. Per informazioni dettagliate, vedere Coordinate trama (Direct3D 9). In genere, le coordinate u- e v-texture assegnate a un vertice si trovano nell'intervallo compreso tra 0,0 e 1,0 inclusivo. Tuttavia, assegnando coordinate di trama all'esterno di tale intervallo, è possibile creare determinati effetti di texturing speciali.

Si controlla l'intervallo Direct3D con coordinate di trama esterne all'intervallo [0.0, 1.0] impostando la modalità di indirizzamento della trama. Ad esempio, è possibile impostare la modalità di indirizzamento della trama in modo che una trama venga riquadrizzata in una primitiva.

Direct3D consente alle applicazioni di eseguire il wrapping della trama. È importante notare che l'impostazione della modalità di indirizzamento della trama su D3DTADDRESS_WRAP non è uguale all'esecuzione del wrapping della trama. L'impostazione della modalità di indirizzamento della trama su D3DTADDRESS_WRAP comporta l'applicazione di più copie della trama di origine alla primitiva corrente e l'abilitazione del wrapping della trama cambia il modo in cui il sistema rasterizza i poligoni tramati. Per informazioni dettagliate, vedere Wrapping trama (Direct3D 9).

L'abilitazione del wrapping della trama rende in modo efficace le coordinate della trama all'esterno dell'intervallo [0.0, 1.0] non valido e il comportamento per la rasterizzazione di tali coordinate di trama del delinquente non è definito in questo caso. Quando il wrapping della trama è abilitato, le modalità di indirizzamento della trama non vengono usate. Prestare attenzione che l'applicazione non specifica le coordinate della trama inferiori a 0,0 o superiori a 1,0 quando il wrapping della trama è abilitato.

Impostazione della modalità di indirizzamento

È possibile impostare le modalità di indirizzamento della trama per singole fasi della trama chiamando il metodo IDirect3DDevice9::SetSamplerState . Specificare l'identificatore di fase trama desiderato nel parametro Sampler . Impostare il parametro Type su D3DSAMP_ADDRESSU, D3DSAMP_ADDRESSV o D3DSAMP_ADDRESSW valori per aggiornare singolarmente le modalità u-, v-o w-addressing. Il parametro Value determina la modalità impostata. Questo può essere qualsiasi membro del tipo enumerato D3DTEXTUREADDRESS . Per recuperare la modalità di indirizzo della trama corrente per una fase di trama, chiamare IDirect3DDevice9::GetSamplerState usando il D3DSAMP_ADDRESSU, D3DSAMP_ADDRESSV o D3DSAMP_ADDRESSW membri dell'enumerazione D3DSAMPLERSTATETYPE per identificare la modalità di indirizzo su cui si desiderano informazioni.

Limitazioni del dispositivo

Anche se in genere il sistema consente le coordinate della trama all'esterno dell'intervallo di 0,0 e 1,0, le limitazioni hardware spesso influiscono sulla distanza delle coordinate della trama dell'intervallo. Un dispositivo di rendering comunica questo limite nel membro MaxTextureRepeat della struttura D3DCAPS9 quando si recuperano le funzionalità del dispositivo. Il valore in questo membro descrive l'intervallo completo di coordinate della trama consentite dal dispositivo. Ad esempio, se questo valore è 128, le coordinate della trama di input devono essere mantenute nell'intervallo -128.0 a +128.0. Il passaggio dei vertici con coordinate di trama all'esterno di questo intervallo non è valido. La stessa restrizione si applica alle coordinate della trama generate in seguito alla generazione automatica delle coordinate della trama e alle trasformazioni delle coordinate della trama.

L'interpretazione di MaxTextureRepeat è interessata anche dal bit di funzionalità D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE. Quando questo bit è impostato, il valore nel membro MaxTextureRepeat viene usato esattamente come descritto. Tuttavia, quando D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE non è impostato, le limitazioni di ripetizione della trama dipendono dalle dimensioni della trama indicizzate dalle coordinate della trama. In questo caso, MaxTextureRepeat deve essere ridimensionato in base alle dimensioni correnti della trama a livello di dettaglio più elevato per calcolare l'intervallo di coordinate della trama valido. Ad esempio, data una dimensione di trama pari a 32 e MaxTextureRepeat di 512, l'intervallo di coordinate della trama valido effettivo è 512/32 = 16, quindi le coordinate della trama per questo dispositivo devono trovarsi all'interno dell'intervallo di -16.0 a +16.0.

Altre informazioni sulle modalità di indirizzamento della trama sono contenute negli argomenti seguenti.

Concetti di texturing di base