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.
Führt die letzte Zeile einer 3x2-Matrix multipliziert aus und verwendet das Ergebnis für eine Textursuche. texm3x2tex muss in Verbindung mit der anweisung texm3x2pad - ps verwendet werden.
Syntax
| texm3x2tex dst, src |
|---|
where
- dst ist das Zielregister.
- src ist ein Quellregister.
Bemerkungen
| Pixel-Shaderversionen | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
|---|---|---|---|---|---|---|---|---|---|
| texm3x2tex | x | x | x |
Die Anweisung wird als eine von zwei Anweisungen verwendet, die einen 3x2-Matrix-Multiplikationsvorgang darstellen. Diese Anweisung muss mit der anweisung texm3x2pad - ps verwendet werden.
Wenn Sie diese beiden Anweisungen verwenden, müssen Texturregister die folgende Sequenz verwenden.
tex t(n) // Define tn as a standard 3-vector (tn must
// be defined in some way before it is used)
texm3x2pad t(m), t(n) // where m > n
// Perform first row of matrix multiply
texm3x2tex t(m+1), t(n) // Perform second row of matrix multiply
// to get (u,v) to sample texture
// associated with stage m+1
Hier finden Sie weitere Details dazu, wie die 3x2-Multiplikation erreicht wird.
Die texm3x2pad-Anweisung führt die erste Zeile des Multiplizierens aus, um u' zu finden.
u' = t(n)RGB * TextureCoordinates(stage m)UVW
Die texm3x2tex-Anweisung führt die zweite Zeile des Multiplizierens aus, um v' zu finden.
v' = t(n)RGB * TextureCoordinates(stage m+1)UVW
Die texm3x2tex-Anweisung veranschaulicht die Textur auf der Bühne (m+1) mit (u',v') und speichert das Ergebnis in t(m+1).
t(m+1)RGB = TextureSample(stage m+1)RGB using (u', v' ) as coordinates
Beispiele
Hier sehen Sie einen Beispielshader mit den Texturzuordnungen und den Texturphasen.
ps_1_1
tex t0 // Bind texture in stage 0 to register t0
texm3x2pad t1, t0 // First row of matrix multiply
texm3x2tex t2, t0 // Second row of matrix multiply to get (u,v)
// with which to sample texture in stage 2
mov r0, t2 // Output result
In diesem Beispiel sind die folgenden Texturen in den folgenden Texturstufen erforderlich.
- Phase 0 nimmt eine Karte mit Stördaten (x,y,z) auf.
- Phase 1 enthält Texturkoordinaten. In der Texturphase ist keine Textur erforderlich.
- Phase 2 enthält sowohl Texturkoordinaten als auch einen 2D-Textursatz in dieser Texturphase.
Zugehörige Themen