Come si genera un numero casuale in HLSL?
Lo sto chiedendo perché voglio provare a tracciare gpu ray . Devi generare direzioni casuali in un pixel shader. Quindi randFloat()
, voglio , dove il risultato è un numero casuale compreso tra -1 e +1.
Inoltre, qual è il problema con l' istruzione hlsl noise ? I documenti dicono che è stato rimosso da HLSL 2.0 e versioni successive. Perché ?
Ho letto di un approccio in cui riempi una trama con valori casuali, quindi hai una coordinata trama in ciascun vertice che ha un indice in quella trama. Ma questo è per vertice , ho bisogno di un'istruzione che posso chiamare nel pixel shader. Inoltre, questo approccio richiede il "reseeding" dei texcoords per vertice se si desidera valori diversi per ogni frame e ciò richiede un aggiornamento del buffer dei vertici per ciascun frame (che può essere costoso!)
Con i dettagli, come è possibile generare in modo economico un numero casuale sulla GPU?