Udostępnij za pośrednictwem


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

Rejestr wejściowy cieniowania pikseli dla stałej zmiennoprzecinkowa 4D.

Można je ustawić przy użyciu def - ps lub SetPixelShaderConstantF.

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.

Przykłady

Oto przykład deklarujący dwie stałe zmiennoprzecinkowe w cieniowaniu.

def c40, 0.0f,0.0f,0.0f,0.0f;

Te stałe są ładowane za każdym razem, gdy jest wywoływana SetPixelShader.

W przypadku ustawiania wartości stałych za pomocą interfejsu API nie jest wymagana deklaracja cieniowania.

rejestruje