我經歷的教程在http://arcsynthesis.org/gltut/Positioning/Tut03%20More%20Power%20To%20The%20Shaders.htmlOpenGL的片段着色器的條件語句不觸發
我目前在它創建了一個三角形,在圓周方向移動,並顏色逐漸改變從白色到綠色的一課。完成一個循環後,顏色將跳回白色。我試圖讓顏色從白色逐漸變成綠色,然後再逐漸變回。 我的條件語句設置我的顏色改變方向似乎從來沒有評估爲真,所以我的改變從未生效。
這是我的片段着色器。
#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
}
所以...什麼是你的問題? – 2012-03-27 23:09:23
對不起,問題是我的條件語句設置我的國旗似乎從來沒有評估爲真。因此,我對顏色的期望改變從未發生過。 – Paul 2012-03-27 23:11:07