Puis-je générer un nombre aléatoire dans un pixel shader?

Je suis en train d'écrire une simple shader qui ajoute aléatoire de l'éclat à les objets applicables. La façon dont je voudrais faire est d'ajouter un hasard nuance de blanc (R = G = B) à la valeur du pixel dans le pixel shader.

Il semble que noise() ne fonctionne pas de la manière que je souhaite, c'est:

float multiplier = noise(float3(Input.Position[0], Input.Position[1], time));

Il me donne "erreur X4532: ne peut pas mapper expression de pixel shader jeu d'instructions", en référence à l'appel à noise().

Car je ne sais pas de manière à conserver un nombre entre les appels pour le shader, je ne pense pas que je peux juste écrire un nombre aléatoire simple fonction de production basée sur une graine adoptée en avant le rendu.

Est-il un moyen de produire un nombre aléatoire à partir de l'intérieur d'un pixel shader? Si il existe un moyen, comment?

source d'informationauteur chaosTechnician | 2011-03-01