X-Git-Url: http://git.lukelau.me/?a=blobdiff_plain;f=billboardfrag.glsl;h=b4cfd511464569ea23c577cda41a5b261c7ba288;hb=c8b0a84bbafd306103b005e7e238b11a656dcba3;hp=16e074e616aae9ea8101b38a11564982e249c894;hpb=92594780db1f9bb51b97e68457c526fa4287a29e;p=clouds.git diff --git a/billboardfrag.glsl b/billboardfrag.glsl index 16e074e..b4cfd51 100644 --- a/billboardfrag.glsl +++ b/billboardfrag.glsl @@ -5,10 +5,15 @@ in vec2 texCoord; out vec4 FragColor; uniform bool modulate; uniform bool debug; +uniform bool debugColor; uniform float debugVal; void main() { + if (debugColor) { + FragColor = color; + return; + } if (debug) { - FragColor = mix(vec4(1, 1, 1, 1), vec4(1, 0, 0, 1), debugVal); + FragColor = mix(vec4(1, 1, 1, 0), vec4(1, 0, 0, 1), debugVal); return; } // Cf = color from fragment, Ct = color from texture @@ -20,8 +25,13 @@ void main() { // GL_MODULATE: C // C = Cf * Ct // A = Af * At - FragColor = color * f; + // the +0.06 is a hack to get lighter clouds! + // can be thought of as ambient light + FragColor = color * (f + 0.02); } else { + // "That is, the colors in the frame buffer are multiplied by the + // attenuation ratio of the billboard texture and then the colors in + // the texture are added" // GL_BLEND: // C = Cf * (1-Ct) + Cc * Ct // A = Af * At