Як ви генеруєте випадкове число в HLSL?
Я запитую, бо хочу спробувати трасування gpu-променів . Вам потрібно генерувати випадкові напрямки в піксельній шейдері. Тому я хочу randFloat()
, де результатом є випадкове число від -1 до +1.
Крім того, яка угода з інструкцією щодо шуму hlsl ? Документи кажуть, що він був видалений з HLSL 2.0 і вище. Чому ?
Я читав про підхід, коли ви заповнюєте текстуру випадковими значеннями, а потім маєте координату текстури у кожній вершині, яка має індекс на цю текстуру. Але це за вершиною , мені потрібна інструкція, яку я можу викликати в піксельному шейдері. Крім того, цей підхід вимагає "повторного перезавантаження" текстових рядків на вершину, якщо ви хочете, щоб кожен кадр відрізнявся значеннями, а для цього потрібен оновлення вершинного буфера для кожного кадру (що може бути дорого!)
Докладно, як можна дешево генерувати випадкове число на GPU?