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


Функция WavePrefixProduct

Возвращает произведение всех значений в активных полосах в этой волне с индексами меньше, чем эта полоса.

Синтаксис

<type> WavePrefixProduct(
   <type> value
);

Параметры

value

Умножаемое значение.

Возвращаемое значение

Произведение всех значений.

Комментарии

Порядок операций в этой подпрограмме не может быть гарантирован. Таким образом, фактически флаг [точный] игнорируется в нем.

Постфиксное произведение можно вычислить, умножив префиксное произведение на значение текущей полосы.

Обратите внимание, что активная полоса с наименьшим индексом всегда будет получать значение 1 для продукта префикса.

Эта функция поддерживается из модели шейдера версии 6.0 на всех этапах шейдера.

Примеры

uint numToMultiply = 2;
uint prefixProduct = WavePrefixProduct( numToMultiply );

На компьютере с размером волны 8 и всеми активными полосами, кроме полос 0 и 4, из WavePrefixProduct будут возвращены следующие значения.

индекс полосы status prefixProduct
0 неактивно н/д
1 active = 1
2 active = 1*2
3 active = 1*2*2
4 неактивно Недоступно
5 active = 1*2*2*2
6 active = 1*2*2*2*2
7 active = 1*2*2*2*2*2*2

См. также раздел

Обзор модели шейдера 6

Модель шейдера 6