Как вы генерируете случайное число в HLSL?
Я спрашиваю, потому что я хочу попробовать трассировку лучей GPU . Вам нужно генерировать случайные направления в пиксельном шейдере. Так что я хочу randFloat()
, где результатом является случайное число от -1 до +1.
Кроме того, как обстоят дела с инструкцией по шуму hlsl ? Документы говорят, что он был удален из HLSL 2.0 и выше. Почему ?
Я читал о подходе, где вы заполняете текстуру случайными значениями, а затем в каждой вершине, у которой есть индекс в этой текстуре, есть координата текстуры. Но это по каждой вершине , мне нужна инструкция, которую я могу вызвать в пиксельном шейдере. Кроме того, этот подход требует «повторного заполнения» текстовых координат для каждой вершины, если вы хотите разные значения для каждого кадра, а для этого требуется, чтобы буфер вершин обновлял каждый кадр (что может быть дорого!)
С подробностями, как вы можете дешево генерировать случайные числа на GPU?