Freigeben über


Boolesche Konstantes Register (HLSL VS-Referenz)

Bei diesem Register handelt es sich um eine Sammlung von Bits, die in Anweisungen zur statischen Flusssteuerung verwendet werden (z. B. wenn bool - vs - else - vs - endif - vs). Es gibt 16 davon, daher kann ein Shader 16 unabhängige Branchbedingungen aufweisen. Sie können mit defb - vs oderSetVertexShaderConstantB 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 mit defx deklarierten Konstante ist nur auf die Ausführung dieses Shaders beschränkt. Umgekehrt werden konstanten, die mithilfe der APIs SetXXXShaderConstantX festgelegt werden, Konstanten im globalen Raum initialisieren. Konstanten im globalen Raum werden erst in den lokalen Raum kopiert (sichtbar für den Shader), 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 unabhängig von der Technik verwendet, mit der sie festgelegt werden.

Vertex-Shaderregister