交互式爱情
我个人理解:两个参数的取值都可以是如下常量之一:GL_ZERO, GL_ONE, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA, and GL_SRC_ALPHA_SATURATE比如GL_ZERO表示alpha取值为0,GL_ONE表示1,GL_DST_COLOR表示取目标区域的颜色值,GL_SRC_ALPHA表示取源区域的alpha值等等。例如:glBlendFunc(GL_SRC_ALPHA, GL_ONE);表示把渲染的图像叠加到目标区域,也就是说源的每一个像素的alpha都等于自己的alpha,目标的每一个像素的alpha等于1。这样叠加次数越多,叠加的图元的alpha越高,得到的结果就越亮。因此这种融合用于表达光亮效果。glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);表示把渲染的图像融合到目标区域。也就是说源的每一个像素的alpha都等于自己的alpha,目标的每一个像素的alpha等于1减去该位置源像素的alpha。 因此不论叠加多少次,亮度是不变的。如此等等。自己试一试才会明白。这个函数是制作很多特技效果的核心,变幻无穷,我这里说的只是皮毛,要完整地理解就必须看官方文档(MSDN就是一个很全面的文档),英语不好也要硬看,其实谁刚开始看的时候都会头疼,看多了英语自然就练出来了...