Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieses Thema enthält Beispiele für Spezialeffekte, die mit der Texturkoordinatenverarbeitung durchgeführt werden.
- Animieren von Texturen (durch Übersetzung oder Drehung) auf einem Modell
- Erstellen von Texturkoordinaten als lineare Funktion der Kameraraumposition eines Modells
- Ausführen der Umgebungszuordnung mit einer kubischen Umgebungszuordnung
- Ausführen von projektiven Texturierungs-
Animieren von Texturen (durch Übersetzung oder Drehung) in einem Modell
Definieren Sie 2D-Texturkoordinaten im Vertexformat.
// 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);
Konfigurieren Sie den Rasterizer für die Verwendung von 2D-Texturkoordinaten.
SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2);
Definieren und Festlegen einer geeigneten Texturkoordinatentransformationsmatrix.
// 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;
Erstellen von Texturkoordinaten als lineare Funktion der Kameraraumposition eines Modells
Verwenden Sie das flag D3DTSS_TCI_CAMERASPACEPOSITION, um das System anzuweisen, die Vertexposition im Kamerabereich als Eingabe für eine Texturtransformation zu übergeben.
// 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);
Weisen Sie den Rasterizer an, 2D-Texturkoordinaten zu erwarten.
// Two output coordinates are used. SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2);
Definieren und Festlegen einer Matrix, die eine lineare Funktion anwendet.
// 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);
Durchführen der Umgebungszuordnung mit einer kubischen Umgebungskarte
Verwenden Sie das flag D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR, um das System anzuweisen, Texturkoordinaten automatisch als Spiegelungsvektoren für die kubische Zuordnung zu generieren.
SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR);
Weisen Sie den Rasterizer an, Texturkoordinaten mit drei Elementen zu erwarten.
SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT3);
Ausführen projektiver Texturierung
Verwenden Sie das flag D3DTSS_TCI_CAMERASPACEPOSITION, um das System anzuweisen, die Vertexposition als Eingabe an eine Texturtransformationsmatrix zu übergeben.
SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_CAMERASPACEPOSITION);
Erstellen und Anwenden der Texturprojektionsmatrix Dies geht über den Rahmen dieser Dokumentation hinaus und ist das Thema mehrerer Branchenartikel.
Weisen Sie den Rasterizer an, von drei Elementen projizierte Texturkoordinaten zu erwarten.
// Two output coordinates are used. SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTF_PROJECTED | D3DTTFF_COUNT3);
Verwandte Themen