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


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

  • Регистр цвета вершин
  • Туман регистра
  • Position_Register
  • Point_Size_Register
  • Texture_Coordinate_Register

Именам регистров предшествует строчная буква o, указывающая, что выходные регистры доступны только для записи.

Регистр цвета вершин — oD0, oD1

oD0 — это диффузный цветной регистр. oD1 — это регистр зеркального цвета. Значение oD0 интерполируется и записывается во входной регистр цвета 0 (v0) пиксельного шейдера. Значение oD1 интерполируется и записывается во входной регистр цвета 1 (v1) пиксельного шейдера. Дополнительные сведения о регистрах цвета шейдера пикселей см. в разделе Регистры.

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

 

Туман регистра — oFog

Регистры выходного значения тумана. Значение — это коэффициент тумана, который должен быть интерполирован и затем перенаправлен в таблицу тумана. Используется только скалярный x-компонент тумана. Значения зажимаются в диапазоне от нуля до единицы перед передачей в средство растеризатора.

Версии вершинного шейдера 1_1 2_0 2_sw 2_x 3_0 3_sw
Туман регистра x x x x

 

Регистр позиции — oPos

Регистры выходной позиции. Значение — это позиция в однородном отсеченном пространстве. Это значение должно быть записано вершинным шейдером.

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

 

Регистр размера точки — oPts

Регистры размера выходных точек. Используется только скалярный компонент X размера точки.

Версии вершинного шейдера 1_1 2_0 2_sw 2_x 3_0 3_sw
Регистр размера точки x x x x

 

Регистр координат текстуры — от oT0 до oT7

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

Версии вершинного шейдера 1_1 2_0 2_sw 2_x 3_0 3_sw
Регистр координат текстуры x x x x

 

При записи в регистр координат текстуры рекомендуется передавать только столько значений с плавающей запятой, сколько размер соответствующей карты текстуры. Управление передаваемыми значениями с помощью модификатора . Например, используйте .xy для карты двухD-текстур.

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

Любой флаг преобразования текстуры D3DTTFF* должен быть равен нулю при использовании программируемого конвейера.

Диапазон координат текстуры

Данные вершин объекта предоставляют координаты входной текстуры. Объекты, которые не используют текстуры с плитками, обычно имеют координаты текстуры в диапазоне [0,1]. Объекты, использующие мозаичную текстуру, такие как ландшафт, обычно имеют координаты текстуры в диапазоне от [-?,+?] Где? может быть большим числом с плавающей запятой.

Интерполяция координат текстуры выполняется на данных вершин для растеризации. Во время растеризации координаты текстуры интерполируются между вершинами объекта, изменяются путем упаковки текстуры и масштабируются по размеру текстуры (также с учетом режима адреса текстуры) для создания целочисленного индекса. Затем индекс используется для поиска текстуры. MaxTextureRepeat можно использовать, чтобы определить, сколько раз текстура может быть мозаична.

Если координаты текстуры считываются непосредственно в пиксельный шейдер (с помощью texcoord или texcrd), диапазон координат текстуры зависит от инструкции и версии пиксельного шейдера.

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