texm3x2depth – ps

Berechnen Sie den Tiefenwert, der in den Tiefentests für dieses Pixel verwendet werden soll.

Syntax

texm3x2depth dst, src

where

  • dst ist das Zielregister.
  • src ist ein Quellregister.

Hinweise

Pixelshaderversionen 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 der Verwendung eines Punktproduktvorgangs zum Suchen von z und w. Hier finden Sie weitere Details zur Durchfü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 markiert, um im Tiefentest für das Pixel verwendet zu werden, und ersetzt den vorhandenen Tiefentestwert für das Pixel.

Stellen Sie sicher, dass Z/W im Bereich von (0-1) klammern. Wenn z/w außerhalb dieses Bereichs liegt, ist 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 entfällt durch die Verwendung dieser Anweisung der größte Teil des Vorteils des Tiefenpuffers mit höherer Auflösung. Da der Pixelshader einmal pro Pixel ausgeführt wird, wird der einzelne Tiefenwert, der von texm3x2depth oder texdepth - ps ausgegeben wird, für jeden der Subpixel-Tiefenvergleichstests verwendet.

Pixelshaderanweisungen