Регистры выходных данных
- Регистр цвета вершин
- Туман регистра
- 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), диапазон координат текстуры зависит от инструкции и версии пиксельного шейдера.
Связанные темы