我正在制作一个游戏引擎,直到最近才更新到核心配置文件OpenGL。在这样做之后,我发现GL_LUMINANCE_ALPHA (我用于字体纹理的)是不推荐的。在用GL_RG替换它之后,我有应该是alpha红色的区域,以及应该是白色绿色的区域!
这当然不是我想要的!有什么办法可以让这个面具恢复到我想要的样子吗?
发布于 2017-04-02 20:29:28
好的,我找到了答案,我只是简单地使用swizzle掩码值,下面是我如何将它恢复到正常状态的方法:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_R, GL_RED);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_G, GL_RED);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_B, GL_RED);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_A, GL_GREEN);这又让它看起来很正常!
发布于 2019-08-09 09:53:54
如果您使用着色器,GL_LUMINANCE_ALPHA by GL_RG将使用如下所示:
rgba = texture(sampler, TextCoord)然后,而不是做
rgb.a你做了
rgb.g我猜
https://stackoverflow.com/questions/43173075
复制相似问题