 <p>You need to lerp (linearly interpolate) between the two textures. Your fragment shader needs to hold both textures and then trigger lerping once you load the second texture, the one that you want to change to. Than use operation like <code>col = fromTex.rgb * (1.0-t) + toTex.rgb * t</code> and change the blending/lerping coefficient <code>t</code> throughout the time until you completely blend into the second texture. <code>t</code> can be sent as a uniform that would be slowly changing from the <code>0.0-&gt;1.0</code> over the time.</p>