Condividi tramite


Modalità di indirizzamento delle texture (Direct3D 9)

L'applicazione Direct3D può assegnare coordinate di trama a qualsiasi vertice di qualsiasi primitiva. Per informazioni dettagliate, vedere Coordinate di texture (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 inclusi. Tuttavia, assegnando coordinate di trama al di fuori di tale intervallo, puoi creare determinati effetti speciali di texturing.

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

Direct3D consente alle applicazioni di eseguire il wrapping delle trame. È importante notare che impostare la modalità di indirizzamento delle texture su D3DTADDRESS_WRAP non è lo stesso che eseguire l'avvolgimento delle texture. L'impostazione della modalità di indirizzamento delle trame su D3DTADDRESS_WRAP comporta l'applicazione di più copie della trama di origine alla primitiva corrente e l'abilitazione del wrapping delle trame cambia il modo in cui il sistema rasterizza i poligoni con trame. Per dettagli, vedere Texture Wrapping (Direct3D 9).

L'abilitazione della disposizione delle trame rende effettivamente non valide le coordinate della trama all'esterno dell'intervallo [0.0, 1.0] e il comportamento per la rasterizzazione di tali coordinate di trama delinquente non è definito in questo caso. Quando si abilita l'avvolgimento delle trame, non vengono utilizzate le modalità di indirizzamento delle trame. Prestare attenzione che l'applicazione non specifichi le coordinate della trama inferiori a 0,0 o superiori a 1,0 quando la disposizione della trama è abilitata.

Impostazione della modalità di indirizzamento

È possibile impostare le modalità di indirizzamento delle trame per le singole fasi della trama chiamando il metodo IDirect3DDevice9::SetSamplerState. Specificare l'identificatore della fase della trama desiderata nel parametro sampler. Imposta il parametro Type sui valori D3DSAMP_ADDRESSU, D3DSAMP_ADDRESSV o D3DSAMP_ADDRESSW per aggiornare individualmente le modalità di indirizzamento u-, v- o w-. Il parametro valore determina quale modalità viene impostata. Può essere qualsiasi membro del tipo enumerato D3DTEXTUREADDRESS. Per recuperare la modalità corrente di indirizzo della trama per un livello di texture, chiamare IDirect3DDevice9::GetSamplerState, utilizzando i membri D3DSAMP_ADDRESSU, D3DSAMP_ADDRESSV o D3DSAMP_ADDRESSW dell'enumerazione D3DSAMPLERSTATETYPE per identificare la modalità di indirizzo su cui si desiderano informazioni.

Limitazioni dei dispositivi

Anche se il sistema consente generalmente coordinate di trama al di fuori dell'intervallo da 0,0 a 1,0, incluso, le limitazioni hardware spesso influiscono su quanto oltre l'intervallo possano estendersi le coordinate della trama. Un dispositivo di rendering comunica questo limite nella MaxTextureRepeat membro della struttura D3DCAPS9 quando si recuperano le funzionalità del dispositivo. Il valore in questo membro descrive l'intera gamma di coordinate di trama consentite dal dispositivo. Ad esempio, se questo valore è 128, le coordinate della trama di input devono essere mantenute nell'intervallo da -128.0 a +128.0. Il passaggio di vertici con coordinate di trama esterne a 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.

Anche l'interpretazione di MaxTextureRepeat è influenzata dal bit della funzionalità di D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE. Quando questo bit viene impostato, il valore nel membro MaxTextureRepeat viene usato esattamente come descritto. Tuttavia, quando D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE non è impostato, le limitazioni di ripetizione delle trame dipendono dalle dimensioni della trama indicizzate dalle coordinate della trama. In questo caso, MaxTextureRepeat deve essere ridimensionato in base alle dimensioni correnti della trama al 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 effettivo di coordinate della trama valida è 512/32 = 16, quindi le coordinate della trama per questo dispositivo devono essere incluse nell'intervallo compreso tra -16,0 e +16,0.

Altre informazioni sulle modalità di indirizzamento delle trame sono contenute negli argomenti seguenti.

Concetti base di texturing