0
我有一个PNG图像作为纹理,其中一部分是透明的,因为α为0.现在看起来不再使用“glAlphaFunc(GL_GREATER,0.99f)”和“glEnable(GL_ALPHA_TEST)”。我正在考虑使用混合。但如何实现呢?如何实现与使用glAlphaFunc(GL_GREATER,0.99f)相同的效果?
此外,任何人都可以向我解释如何功能
glBlendFunc(GL_SRC_COLOR, GL_ZERO);
的作品?目标比例因子&以及它们的使用方式是什么?
默认的混合方程是可加的,所以混合函数可以运行到'Src.rgb * Src.rgb + Dst.rgb * 0'(其中'Src'是输入的颜色,'Dst'是已经存在的颜色帧缓冲器)。我不确定你在这里想要完成什么?混合功能从哪里来? – 2015-03-31 21:25:19
@Andon M. Coleman这只是一个例子(可能没有任何意义),因为我不明白这两个参数是如何工作的。你说的话对我有意义。因此,如果我将其更改为glBlendFunc(GL_SRC_ALPHA,GL_ONE),结果将如下所示:Src.a * Src.rgb + Dst.rgb * 1? – Oscar 2015-04-01 02:17:12
是的,这正是如何工作。 – 2015-04-01 18:38:19