Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Маска записи определяет, какие компоненты целевого регистра записываются после завершения инструкции. Маска записи выходных данных допускается до тех пор, пока компоненты находятся в порядке RGBA или Xyzw. То есть rba и .xw являются допустимыми масками. Регистры текстур имеют один набор правил и регистров, не являющихся текстурами, имеют другой набор правил.
Синтаксис
| dst.writemask |
|---|
где
- dst — это регистр назначения.
- writemask — это последовательность маски из любого набора: (x,y,z,w) или (красный, зеленый, синий, альфа- ).
Замечания
Доступны следующие маски записи назначения.
| Версии шейдера пикселей | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
|---|---|---|---|---|---|---|---|---|---|
| .xyzw (по умолчанию) | x | x | x | x | x | x | x | x | x |
| .xyz | x | x | x | x | x | x | x | x | x |
| .w | x | x | x | x | x | x | x | x | x |
| произвольная маска | x | x | x | x | x | x |
Произвольное маскирование позволяет объединить любой набор каналов для создания маски. Каналы должны быть указаны в порядке r, g, b, a - например, register.rba, который обновляет красные, синий и альфа-каналы назначения. Произвольное маскирование доступно в версии 1_4 или более поздней.
Если маска записи назначения не указана, по умолчанию целевой маски записи по умолчанию соответствует регистру rgba. Другими словами, все каналы в целевом регистре обновляются.
Для версий 1_0 до 1_3 dp3 — ps dp3 арифметическая инструкция может использовать только маски записи выходных данных RGB или RGBA.
Маски записи в целевом регистре поддерживаются только для арифметических операций. Их нельзя использовать для инструкций по адресации текстур, за исключением инструкций версии 1_4, texcrd — ps и texld — ps_2_0 и более.
По умолчанию используется запись всех четырех цветов.
// All four color channels can be written by explicitly listing them.
mul r0.rgba, t0, v0
// Or, the default mask can be used to write all four channels.
mul r0, t0, v0
Маска альфа-записи также называется скалярной маской записи, так как она использует скалярный конвейер.
add r0.a, t1, v1
Таким образом, эта инструкция эффективно помещает сумму альфа-компонента t1 и альфа-компонент версии 1 в r0.a.
Маска записи цвета используется для управления записью в каналы цветов.
// The color write mask is also referred to as the vector write mask,
// because it uses the vector pipeline.
mul r0.rgb, t0, v0
Для версии 1_4 конечные маски записи можно использовать в любом сочетании, если маски упорядочены r,g,a.
// This example updates the red, blue, and alpha channels.
mov r0.rba, r1
Совместно выданная инструкция позволяет одновременно выдавать две разные инструкции. Это достигается путем выполнения инструкций в альфа-конвейере и конвейере RGB.
mul r0.rgb, t0, v0
+ add r1.a, t1, c1
Преимущество инструкций по связыванию таким образом заключается в том, что он позволяет выполнять различные операции в векторе и скалярном конвейере параллельно.
Эти регистры выходных данных шейдера вершин ограничены следующими масками записи:
| Тип регистрации | Обязательная маска записи |
|---|---|
| oFog | В этом скалярном регистре не разрешена явная маска записи |
| Выбирает | В этом скалярном регистре не разрешена явная маска записи |
| oPos | .xyzw(который является значением по умолчанию) |
| oT# | объединенная маска: .x | .xy | .xyz | .xyzw (которая является значением по умолчанию) |
Связанные разделы