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.
Berechnen Sie den Tiefenwert, der bei Tiefentests für dieses Pixel verwendet werden soll.
Syntax
| texm3x2depth 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 |
|---|---|---|---|---|---|---|---|---|---|
| texm3x2depth | x |
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
// Calculate z value
texm3x2depth t(m+1), t(n) // Calculate w value; use both z and w to
// find depth
Die Tiefenberechnung erfolgt nach Verwendung eines Punktproduktvorgangs zum Ermitteln von z und w. Hier finden Sie weitere Details zur Ausführung der Tiefenberechnung.
Die texm3x2pad-Anweisung berechnet z.
z = TextureCoordinates(stage m)UVW * t(n)RGB
Die texm3x2depth-Anweisung berechnet w.
w = TextureCoordinates(stage m+1)UVW * t(n)RGB
Berechnen Sie die Tiefe, und speichern Sie das Ergebnis in t(m+1).
if (w == 0)
t(m+1) = 1.0
else
t(m+1) = z/w
Die berechnete Tiefe wird so markiert, dass sie im Tiefentest für das Pixel verwendet wird, wodurch der vorhandene Tiefentestwert für das Pixel ersetzt wird.
Stellen Sie sicher, dass z/w im Bereich von (0-1) liegt. Wenn sich z/w außerhalb dieses Bereichs befindet, wird das im Tiefenpuffer gespeicherte Ergebnis nicht definiert.
Nach dem Ausführen von texm3x2depth ist register t(m+1) nicht mehr für die Verwendung im Shader verfügbar.
Beim Multisampling beseitigt die Verwendung dieser Anweisung den größten Vorteil des Tiefenpuffers mit höherer Auflösung. Da der Pixel-Shader einmal pro Pixel ausgeführt wird, wird der einzelne Tiefenwert von texm3x2depth oder texdepth - ps für jeden Der Subpixel-Tiefenvergleichstests verwendet.
Zugehörige Themen