2

我正在尝试使用QImageand生成纹理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);

有什么建议么?

4

1 回答 1

2

我发现了问题,它不是来自纹理本身的设置。这是因为我没有正确设置 gl 函数。我添加了

glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);

现在它起作用了。

于 2016-10-24T17:44:17.457 回答