Ich habe float brightness
mit einer Punktproduktion von 2 Vektoren drin. brightness
sollte die meiste Zeit positiv sein, aber um sicherzustellen, dass ich max(brightness, 0.0)
verwende. Wenn ich versuche, brightness
in meinem Beleuchtungssystem zu verwenden, zeigt nichts auf Anzeige an. Ich habe versucht, dies mit If-Anweisung zu debuggen, aber es scheint, dass es immer wahr oder etwas zurückgibt. So verwirft if(brightness > 99999)
und if(brightness < 99999)
oder if(brightness == 12345)
alles Pixel. Ich verwende GLSL Version 430 Core.GLSL Wenn immer wahr
float brightness = dot(vector1, vector2);
brightness = max(brightness, 0.0);
if(brightness < -999) {
discard;
}
Also in diesem Beispiel^es wird das Pixel verwerfen.
Ich dachte, dass es NaN sein könnte und ich versuchte tatsächlich, jede Änderung in diesen Vektoren zu verfolgen. Ich werde es mir jetzt nochmal ansehen. – Maineri
Ich habe den Fehler gefunden. Du hattest Recht. Der Vektor 2 war NaN. Ich hatte versehentlich diesen Vektor2 vom Vertex-Shader als vec4 ausgegeben und ihn als vec3 im Fragment-Shader eingegeben. Vielen Dank! – Maineri