Como você gera um número aleatório no HLSL?
Estou perguntando porque quero tentar o rastreamento de raios gpu . Você precisa gerar direções aleatórias em um pixel shader. Então, eu quero randFloat()
, onde o resultado é um número aleatório entre -1 e +1.
Além disso, qual é o problema da instrução hlsl noise ? Os documentos dizem que foi removido do HLSL 2.0 e superior. Por que ?
Eu li sobre uma abordagem em que você preenche uma textura com valores aleatórios e, em seguida, tem uma coordenada de textura em cada vértice que possui um índice nessa textura. Mas isso é por vértice , preciso de uma instrução que eu possa chamar no pixel shader. Além disso, essa abordagem exige "nova propagação" dos cabos de texto por vértice, se você deseja valores diferentes a cada quadro, e isso exige que um buffer de vértice atualize cada quadro (o que pode ser caro!)
Com detalhes, como você pode gerar um número aleatório barato na GPU?