Als «glsl» getaggte Fragen

179
Zufalls- / Rauschfunktionen für GLSL

Da sich die Anbieter von GPU-Treibern normalerweise nicht die Mühe machen, sie noiseXin GLSL zu implementieren , suche ich nach einem Dienstprogramm mit der Funktion "Grafik-Randomisierung, Schweizer Taschenmesser" , das vorzugsweise für die Verwendung in GPU-Shadern optimiert ist. Ich bevorzuge...

92
Was ist der Ursprung dieses GLSL rand () Einzeilers?

Ich habe diesen Pseudozufallszahlengenerator zur Verwendung in Shadern gesehen, auf die hier und da im Internet Bezug genommen wird : float rand(vec2 co){ return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453); } Es wird verschiedentlich als "kanonisch" oder "ein Einzeiler, den ich...

74
Übergeben einer Werteliste an den Fragment-Shader

Ich möchte eine Liste von Werten an einen Fragment-Shader senden. Es handelt sich um eine möglicherweise große Liste (einige Tausend Elemente lang) von Floats mit einfacher Genauigkeit. Der Fragment-Shader benötigt zufälligen Zugriff auf diese Liste und ich möchte die Werte der CPU in jedem...

74
Erstellen eines GLSL-Arrays von Uniformen?

Ich möchte die Lichter von OpenGL verlassen und meine eigenen machen. Ich möchte, dass meine Shader eine variable Anzahl von Lichtern zulassen. Können wir eine Reihe von Uniformen in GLSL-Shadern deklarieren? Wenn ja, wie würden wir die Werte dieser Uniformen festlegen?

73
Verlangsamen bedingte Anweisungen Shader?

Ich möchte wissen, ob "if-Anweisungen" in Shadern (Vertex / Fragment / Pixel ...) die Shader-Leistung wirklich verlangsamen. Zum Beispiel: Ist es besser, dies zu verwenden: vec3 output; output = input*enable + input2*(1-enable); anstatt dies zu verwenden: vec3 output; if(enable == 1) {...