Freigeben über


Boolesches Konstantenregister (HLSL PS-Referenz)

Dieses Register ist eine Sammlung von Bits, die in Anweisungen zur statischen Flusssteuerung verwendet werden (z. B. wenn bool - ps - else - ps - endif - ps). Es gibt 16 davon, daher kann ein Shader 16 unabhängige Branchbedingungen haben. Sie können mit defb - ps oder SetPixelShaderConstantB festgelegt werden.

Das Verhalten von Shaderkonstanten hat sich zwischen Direct3D 8 und Direct3D 9 geändert.

  • Für Direct3D 9 weisen Konstanten, die mit defx festgelegt sind, dem Shaderkonstantenbereich Werte zu. Die Lebensdauer einer Konstanten, die mit defx deklariert wurde, ist nur auf die Ausführung dieses Shaders beschränkt. Umgekehrt werden konstanten, die mithilfe der APIs SetXXXShaderConstantX festgelegt werden, Konstanten im globalen Raum initialisiert. Konstanten im globalen Raum werden erst in den lokalen Bereich (sichtbar für den Shader) kopiert, bis SetxxxShaderConstants aufgerufen wird.
  • Für Direct3D 8 weisen Konstanten, die mit defx oder den APIs festgelegt sind, dem Shaderkonstantenbereich Werte zu. Jedes Mal, wenn der Shader ausgeführt wird, werden die Konstanten vom aktuellen Shader verwendet, unabhängig von der Technik, mit der sie festgelegt werden.
Pixelshaderversionen 1_1 1_2 1_3 1_4 2_0 2_sw 2_x 3_0 3_sw
Boolesches Konstantenregister x x x

 

Register