openGLES 2-有没有一种方法可以在不扩展为无符号字节的情况下,每1位加载一个带有alpha元素的纹理?

时间:2019-05-02 15:29:48

标签: c colors opengl-es opengl-es-2.0

我有一个要设置为要使用的纹理的位掩码(例如,将其设置为0或1,或者将其用作模版测试的样本)。

我需要将现有掩码中的每一位都变成一个字节并使用GL_UNSIGNED_BYTE还是使用该掩码的更巧妙的方法?

1 个答案:

答案 0 :(得分:0)

OpenGLES 2仅具有一种具有单个alpha字母的纹理格式:GL_UNSIGNED_SHORT_5_5_5_1,一种16位RGBA纹理。如果您对RGB的15位有任何使用,那是您的最佳选择。使用压缩纹理可能效果更好,也可能效果不好。

对于单个位模板,有一个GL_OES_STENCIL1扩展名,但是在8位模板中使用单个位平面确实很简单(实际上很少有一次使用一个以上的位平面)。

使用模具需要您创建,渲染和投影到RenderBuffer中,然后将该RenderBuffer渲染到下一个目标(例如默认帧缓冲区)上。

不确定您的用例,但是与仅将8位alpha设置为[0.0,1.0]进行滚动相比,我想不出什么值得付出的努力。如果您追求性能,请坚持使用主流解决方案,让驱动程序发挥其魔力。