Freigeben über


texm3x2depth – ps

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.

Pixel-Shaderanweisungen