一个对象的多个glBlendFunc

时间:2012-08-23 13:47:16

标签: objective-c opengl

我需要绘制纹理四边形。我的纹理有一些alpha像素。所以我需要做glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

多数民众赞成。但我需要在该四边形(glBlendFunc(GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA);)上使用其他一些混合函数来实现纹理遮罩。我该怎么做?因为如果我同时设置glBlendFunc,则会忽略其中一个。

1 个答案:

答案 0 :(得分:2)

混合是帧缓冲操作,不能按原语设置。如果需要在单个图元上组合多个纹理图层,请在着色器中执行此操作,并发出复合颜色/ alpha,以正确的方式与选择的混合函数进行交互。如果需要不同的混合功能,则必须使用单独的绘图调用来执行此操作。