Функция 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 |