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


Входной регистр

Входной регистр шейдера вершин.

Данные из каждой вершины (с использованием одного или нескольких входных потоков вершин) загружаются в регистры входных данных вершин перед запуском шейдера вершин. Входные регистры состоят из 16 векторов с плавающей запятой с плавающей запятой, назначенных как v0–v15. Эти регистры доступны только для чтения. Входной регистр привязан к данным вершин через объявление вершин.

Следующие свойства регистра управляют поведением каждого регистра:

Свойство Описание
Имя v[n] — n является необязательным номером регистра. Значение 0 используется по умолчанию, если оно не указано.
Считать Не более 16 регистров, v0 – v15.
Разрешения ввода-вывода Только для чтения. Этот регистр не может быть записан API или в шейдере.
Чтение портов 1. Это количество раз, когда регистр можно прочитать в рамках одной инструкции. См. ниже.

 

Любая отдельная инструкция может получить доступ только к одному регистру входных данных вершин. Однако каждый источник в инструкции может независимо переворашивать и отрицать этот вектор, как он считывается.

Пример

Ниже приведен пример использования объявления вершин для привязки данных о положении вершин 2D для регистрации версии 0.

Объявление вершин принадлежит приложению:

D3DVERTEXELEMENT9 decl[] =
{
    { 0, 0, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 },
      D3DDECL_END()
};

Ниже приведено соответствующее объявление шейдера вершин:

dcl_position v0
Версии шейдера вершин 1_1 2_0 2_sw 2_x 3_0 3_sw
Регистрация позиции x x x x x x

 

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