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


Константный целочисленный регистр (справочник по VS HLSL)

Константные целочисленные регистры используются только циклом - vs и rep - vs.

Их можно задать с помощью defi - vs или SetVertexShaderConstantI.

При использовании в качестве аргумента цикла — и инструкции:

  • .x — это число итераций. (rep - vs использует только этот компонент).
  • .y — это начальное значение счетчика цикла.
  • .z — шаг приращения счетчика цикла.

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

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

Регистры вершинного шейдера