【发布时间】:2016-04-19 08:16:46
【问题描述】:
我正在寻找一种功能/方法来使混合仅在目标像素(即后台缓冲区)的 alpha 值大于 0 时起作用。
我正在寻找类似于 glAlphaFunc 的东西,它测试传入的片段,但在我的情况下,我想测试已经在后台缓冲区中找到的片段。
有什么想法吗?
提前谢谢你
ps。我无法在绘图函数中进行逐像素测试,因为它被设置为用户的回调函数。
【问题讨论】:
-
你试过
glBendFunc吗? -
定义“使混合工作”。你已经有混合功能了吗?也就是说,你是结合源颜色和目标颜色,还是只是想根据目标 alpha 是否大于零有条件地写入源颜色?
-
我正在尝试实现第二个,即根据目标 alpha 是否大于零有条件地写入源颜色。我要做的是在各种纹理上保存后台缓冲区,并根据需要使用混合函数(GL_SOURCE_ALPHA、GL_ONE_MINUS_SOURCE_ALPHA)在后台缓冲区上重绘它们(很可能会用其他东西重绘)。
-
根据定义,alpha 值为 [0..1]。所以总是积极的。也许解释你想做什么,而不是你想怎么做。