Jak wygenerować liczbę losową w HLSL?
Pytam, ponieważ chcę spróbować śledzenia gpu ray . Musisz wygenerować losowe kierunki w module cieniującym piksele. Więc chcę randFloat()
, gdzie wynikiem jest liczba losowa od -1 do +1.
Jaka jest umowa z instrukcją dotyczącą szumu hlsl ? Dokumenty mówią, że został on usunięty z HLSL 2.0 i nowszych wersji. Dlaczego ?
Czytałem o podejściu, w którym wypełniasz teksturę losowymi wartościami, a następnie masz współrzędną tekstury w każdym wierzchołku, który ma indeks do tej tekstury. Ale to na wierzchołek , potrzebuję instrukcji, którą mogę wywołać w module cieniującym piksele. Co więcej, to podejście wymaga „ponownego wysiewu” teksturordów na wierzchołek, jeśli chcesz mieć różne wartości w każdej ramce, a to wymaga aktualizacji bufora wierzchołków dla każdej ramki (co może być kosztowne!)
Jak szczegółowo możesz tanio wygenerować losową liczbę na GPU?