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


Функция WavePrefixSum

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

Синтаксис

<type> WavePrefixSum(
   <type> value
);

Параметры

value

Итоговое значение.

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

Сумма значений.

Комментарии

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

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

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

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

Примеры

uint numToSum = 2;
uint prefixSum = WavePrefixSum( numToSum );

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

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

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

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

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