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


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

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

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

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

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

 

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

Пример

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

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

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

 

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