opengl 透明
opengl的混合通过片源shader中输出color的a值实现。
color.rgb =
// Ambient : simulates indirect lighting
MaterialAmbientColor +
// Diffuse : "color" of the object
MaterialDiffuseColor * LightColor * LightPower * cosTheta / (distance*distance) +
// Specular : reflective highlight, like a mirror
MaterialSpecularColor * LightColor * LightPower * pow(cosAlpha,5) / (distance*distance);
color.a = 0.3;
在程序代码中要设置混合模式。
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
它会把两张图片的rgb,经过计算后,生成新的rgb.glBlendFunc指明了计算的方式。