Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo argomento contiene esempi di effetti speciali eseguiti con l'elaborazione delle coordinate della trama.
- Animare trame (per traslazione o rotazione) in un modello
- Creazione di coordinate di trama come funzione lineare della posizione dello spazio della fotocamera di un modello
- Mapping dell'ambiente in esecuzione con una mappa dell'ambiente cubica
- Esecuzione di di texturing projective
Animazione di trame (per traslazione o rotazione) in un modello
Definire le coordinate delle trame 2D nel formato dei vertici.
// Use a single texture, with 2D texture coordinates. This // bit-pattern should be expanded to include position, normal, // and color information as needed. DWORD dwFVFTex = D3FVF_TEX1 | D3DFVF_TEXCOORDSIZE2(0);Configurare il rasterizzatore per l'uso delle coordinate delle trame 2D.
SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2);Definire e impostare una matrice di trasformazione delle coordinate della trama appropriata.
// M is a D3DMATRIX being set to translate texture // coordinates in the U and V directions. // 1 0 0 0 // 0 1 0 0 // du dv 1 0 (du and dv change each frame) // 0 0 0 1 D3DMATRIX M = D3DXMatrixIdentity(); // declared in d3dutil.h M._31 = du; M._32 = dv;
Creazione di coordinate di trama come funzione lineare della posizione dello spazio della fotocamera di un modello
Usare il flag D3DTSS_TCI_CAMERASPACEPOSITION per indicare al sistema di passare la posizione del vertice, nello spazio della fotocamera, come input a una trasformazione trama.
// The input vertices have no texture coordinates, saving // bandwidth. Three texture coordinates are generated by // using vertex position in camera space (x, y, z). SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_CAMERASPACEPOSITION);Indica al rasterizzatore di aspettarsi coordinate di trama 2D.
// Two output coordinates are used. SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2);Definire e impostare una matrice che applica una funzione lineare.
// Generate texture coordinates as linear functions // so that: // u = Ux*x + Uy*y + Uz*z + Uw // v = Vx*x + Vy*y + Vz*z + Vw // The matrix M for this case is: // Ux Vx 0 0 // Uy Vy 0 0 // Uz Vz 0 0 // Uw Vw 0 0 SetTransform(D3DTS_TEXTURE0, &M);
Esecuzione del mapping dell'ambiente con una mappa di ambiente cubica
Usare il flag D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR per indicare al sistema di generare automaticamente le coordinate della trama come vettori di reflection per il mapping cubo.
SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR);Indicare al rasterizzatore di aspettarsi coordinate di trama con tre elementi.
SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT3);
Esecuzione di texturing projective
Usare il flag D3DTSS_TCI_CAMERASPACEPOSITION per indicare al sistema di passare la posizione del vertice come input a una matrice di trasformazione trama.
SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_CAMERASPACEPOSITION);Creare e applicare la matrice di proiezione della trama. Questo non rientra nell'ambito di questa documentazione ed è l'argomento di diversi articoli del settore.
Indica al rasterizzatore di prevedere coordinate di trama proiettate a tre elementi.
// Two output coordinates are used. SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTF_PROJECTED | D3DTTFF_COUNT3);
Argomenti correlati