Bummer that we're going to take a performance hit here (and instruction count hit) since dynamic branches don't exist in GLSL ES AFAIK.

The alternative is a custom shader for this, but I won't add that optimization until we need it.