在OpenGL上,有没有办法告诉glTexSubImage2d不要覆盖透明像素?

时间:2015-05-27 05:02:49

标签: opengl opengl-es

在OpenGL上,我使用glTexSubImage2d用矩形精灵覆盖2D纹理的特定部分。但是,这些精灵有一些我想要忽略的透明像素(0x00000000) - 也就是说,我不希望这些像素覆盖目标纹理上的位置上的任何像素。有没有办法告诉OpenGL不要覆盖这些像素?

这必须与尽可能低的OpenGL版本兼容。

1 个答案:

答案 0 :(得分:2)

不,无论来源或目标是什么,glTexSubImage2d都会将数据直接复制到纹理。

我只能建议您使用glTexSubImage2d创建另一个包含您要尝试推送的数据的纹理,然后将此纹理绘制到目标纹理。这将产生一个非常标准的绘图管道,因此您可以使用混合函数或着色器执行任何操作。