Wie erzeugt man eine Zufallszahl in HLSL?
Ich frage, weil ich versuchen möchte, GPU-Raytracing . Sie müssen zufällige Richtungen in einem Pixel-Shader erzeugen. Ich möchte also randFloat()
, dass das Ergebnis eine Zufallszahl zwischen -1 und +1 ist.
Wie ist der Umgang mit dem HLSL- Noise- Befehl? Die Dokumente sagen, dass es aus HLSL 2.0 und höher entfernt wurde. Warum ?
Ich habe über einen Ansatz gelesen, bei dem Sie eine Textur mit zufälligen Werten füllen und dann in jedem Scheitelpunkt eine Texturkoordinate haben, die einen Index für diese Textur enthält. Aber das ist per Vertex , ich brauche eine Anweisung, die ich im Pixel-Shader aufrufen kann. Außerdem erfordert dieser Ansatz das "Neueinordnen" der Texkoordinaten pro Scheitelpunkt, wenn Sie unterschiedliche Werte für jeden Frame wünschen, und dies erfordert ein Aktualisieren des Scheitelpunktpuffers für jeden Frame (was teuer sein kann!).
Wie kann man mit Detail billig eine Zufallszahl auf der GPU generieren?