¿Cómo se genera un número aleatorio en HLSL?
Lo pregunto porque quiero probar el trazado de rayos gpu . Necesita generar direcciones aleatorias en un sombreador de píxeles. Entonces, quiero randFloat()
, donde el resultado es un número aleatorio entre -1 y +1.
Además, ¿cuál es el trato con la instrucción de ruido hlsl ? Los documentos dicen que se eliminó de HLSL 2.0 y versiones posteriores. ¿Por qué ?
Leí sobre un enfoque en el que rellena una textura con valores aleatorios, luego tiene una coordenada de textura en cada vértice que tiene un índice en esa textura. Pero eso es por vértice , necesito una instrucción que pueda llamar en el sombreador de píxeles. Además, este enfoque requiere "volver a colocar" los códigos de texto por vértice si desea valores diferentes en cada cuadro, y eso requiere una actualización del búfer de vértices en cada cuadro (¡lo cual puede ser costoso!)
Con detalles, ¿cómo puede generar de forma económica un número aleatorio en la GPU?