Поделиться через


Постоянный регистр с плавающей запятой (справочник по HLSL PS)

Регистр входных данных шейдера пикселей для 4D-константы с плавающей запятой.

Их можно задать с помощью def - ps или SetPixelShaderConstantF.

Поведение констант шейдера изменилось между Direct3D 8 и Direct3D 9.

  • Для Direct3D 9 константы, заданные с defx, присваивают значения пространству констант шейдера. Время существования константы, объявленной с defx, ограничивается только выполнением этого шейдера. И наоборот, константы, заданные с помощью API SetXXXShaderConstantX, инициализируют константы в глобальном пространстве. Константы в глобальном пространстве не копируются в локальное пространство (видимое для шейдера), пока не будет вызван setxxxShaderConstants.
  • Для Direct3D 8 константы, заданные с помощью defx или API, присваивают значения постоянному пространству шейдера. При каждом выполнении шейдера константы используются текущим шейдером независимо от метода, используемого для их задания.

Примеры

Ниже приведен пример объявления двух констант с плавающей запятой в шейдере.

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

Эти константы загружаются при каждом вызове SetPixelShader .

Если вы задаете значения констант с помощью API, объявление шейдера не требуется.

Регистры