如何在QOpenGLTexture中创建带alpha的纹理?
How to create a texture with alpha in QOpenGLTexture?
我正在尝试使用 QImage
和 QOpenGLTexture
生成纹理。
我已将 QImage
颜色格式设置为 RGBA8888
,并使用 setPixel
设置颜色,但似乎无论我如何更改 alpha 值,它都保持为 255,并且透明度图片永远不会改变。
这是我的代码:
QImage texPic(width, height, QImage::Format_RGBA8888);
texPic.setPixel(0, 0, qRgba(255,0,0,0));
texPic.setPixel(0, 1, qRgba(0,255,0,100));
QOpenGLTexture *texture = new QOpenGLTexture(texPic);
有什么建议吗?
我找到问题了,不是贴图本身的设置问题。
这是因为我没有正确设置 gl 函数。
我加了
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
现在成功了。
我正在尝试使用 QImage
和 QOpenGLTexture
生成纹理。
我已将 QImage
颜色格式设置为 RGBA8888
,并使用 setPixel
设置颜色,但似乎无论我如何更改 alpha 值,它都保持为 255,并且透明度图片永远不会改变。
这是我的代码:
QImage texPic(width, height, QImage::Format_RGBA8888);
texPic.setPixel(0, 0, qRgba(255,0,0,0));
texPic.setPixel(0, 1, qRgba(0,255,0,100));
QOpenGLTexture *texture = new QOpenGLTexture(texPic);
有什么建议吗?
我找到问题了,不是贴图本身的设置问题。 这是因为我没有正确设置 gl 函数。 我加了
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
现在成功了。