ich durch das Tutorial werde bei http://arcsynthesis.org/gltut/Positioning/Tut03%20More%20Power%20To%20The%20Shaders.htmlopengl Fragment-Shader bedingte Anweisung ausgelöst nicht
Ich bin zur Zeit auf einer Lektion, die ein Dreieck entsteht, bewegt er sich in einer kreisförmigen Richtung und nach und nach die Farbe von weiß zu grün wechseln. Die Farbe springt nach einem vollständigen Zyklus wieder auf Weiß zurück. Ich versuche, die Farbe schrittweise von Weiß zu Grün und zurück zu bewegen. Meine Bedingungsanweisung zum Festlegen meiner Farbänderungsrichtung scheint niemals als wahr auszuwerten, sodass meine Änderung niemals wirksam wird.
Hier ist mein Fragment Shader.
#version 330
out vec4 outputColor;
uniform float fragLoopDuration; //5.0f
uniform float time;
const vec4 firstColor = vec4(1.0f, 1.0f, 1.0f, 1.0f);
const vec4 secondColor = vec4(0.0f, 1.0f, 0.0f, 1.0f);
void main()
{
bool myFlag = false; //flag will indicate which direction color change will take.
float currTime = mod(time, fragLoopDuration);
float currLerp = currTime/fragLoopDuration; //currLerp range = (0.0f-1.0f)
if (currLerp == 0.9f) myFlag = !myFlag; //this flag is not geting triggered.
if (myFlag) outputColor = mix(secondColor, firstColor, currLerp * -1.0f + 1.0f); //green to white
if (!myFlag) outputColor = mix(firstColor, secondColor, currLerp); //white to green
}
So ..., was Ihre Frage ? –
Sorry, Problem ist meine bedingte Anweisung zu setzen mein Flag scheint nie als wahr auszuwerten. So tritt meine gewünschte Änderung der Farbe nie auf. – Paul