opengl 透明

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指明了计算的方式。

你可能感兴趣的:(opengl 透明)