Udostępnij za pośrednictwem


Stały rejestr logiczny (odwołanie HLSL PS)

Ten rejestr jest kolekcją bitów używanych w statycznych instrukcjach sterowania przepływem (na przykład jeśli wartość logiczna - ps - else - ps - endif - ps). Istnieje 16 z nich, dlatego cieniator może mieć 16 niezależnych warunków gałęzi. Można je ustawić przy użyciu defb — ps lub SetPixelShaderConstantB.

Zachowanie stałych cieniowania zmieniło się między Direct3D 8 i Direct3D 9.

  • W przypadku direct3D 9 stałe ustawione z defx przypisują wartości do przestrzeni stałej cieniowania. Okres istnienia stałej zadeklarowanej z defx jest ograniczony tylko do wykonywania tego cieniowania. Z drugiej strony stałe ustawiane przy użyciu interfejsów API SetXXXShaderConstantX inicjują stałe w przestrzeni globalnej. Stałe w przestrzeni globalnej nie są kopiowane do przestrzeni lokalnej (widocznej dla cieniowania), dopóki nie zostanie wywołana funkcja SetxxxShaderConstants.
  • W przypadku direct3D 8 stałe ustawione za pomocą defx lub interfejsów API przypisują wartości do przestrzeni stałej cieniowania. Za każdym razem, gdy cieniator jest wykonywany, stałe są używane przez bieżący moduł cieniowania niezależnie od techniki używanej do ich ustawiania.
Wersje cieniowania pikseli 1_1 1_2 1_3 1_4 2_0 2_sw 2_x 3_0 3_sw
Stały rejestr logiczny x x x

 

rejestruje