使用OpenGL ES 1.1。
我正在生成的图片正在进行彩色键控。它用其他东西替换一种颜色(洋红色)。
所以我用那种颜色清理背景,画在它上面,一切都很好。
然而,具有alpha通道的纹理会导致一些并发症。我实际上只想使用最大或最小的alpha,并显示背景或显示混合的图像,比如黑色。
我主要工作的黑客手动调整纹理数据,将alpha通道强制为min或max,并对实际颜色值进行预乘,这大部分都有效。
但是,当纹理大小发生变化时,我会进行一些过滤,一些洋红色经过。
所以:
1)是否有一些glBlendFunc和glTexEnv组合器函数的组合可以让我停止手动编辑纹理?
或者,失败了....
2)绘制纹理时,我应该使用哪些参数,以便在缩放时将alpha保持为0或1?
答案 0 :(得分:1)
使用 alpha测试而不是混合。使用glAlphaFunc选择比较函数和参考值。使用glEnable(GL_ALPHA_TEST)
启用(并在渲染过程中不再需要时禁用)。