Konstantes boolesches Register (HLSL PS-Referenz)

Dieses Register ist eine Auflistung von Bits, die in Anweisungen zur statischen Flusssteuerung verwendet werden (z. B. wenn bool – ps - else – ps - endif – ps) ist. 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 Shaderkonst constants hat sich zwischen Direct3D 8 und Direct3D 9 geändert.

  • Bei Direct3D 9 weisen konstanten Konstanten, die mit defx festgelegt wurden, Werte dem konstanten Shaderraum zu. Die Lebensdauer einer mit defx deklarierten Konstante ist auf die Ausführung dieses Shaders beschränkt. Umgekehrt initialisieren Konstanten, die mithilfe der APIs SetXXXShaderConstantX festgelegt werden, Konstanten im globalen Raum. Konstanten im globalen Raum werden erst dann in den lokalen Raum kopiert (für den Shader sichtbar), wenn SetxxxShaderConstants aufgerufen wird.
  • Für Direct3D 8 weisen Konstanten, die mit defx oder den APIs festgelegt wurden, Werte dem konstanten Shaderraum 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 wurden.
Pixel-Shaderversionen 1_1 1_2 1 _ 3 1_4 2 _ 0 2 _ sw 2 _ x 3 _ 0 3 _ sw
Konstantes boolesches Register x x x

Register