c++ - 如何在QOpenGLTexture中创建带alpha的纹理?

标签 c++ qt opengl-es-2.0 qtopengl

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

现在它起作用了。

关于c++ - 如何在QOpenGLTexture中创建带alpha的纹理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40187316/

相关文章:

opengl-es - 如何在 OpenGL 中使两个平滑的形状相交?

ios - OpenGL ES 2.0-纹理四边形

c++ - CUDA如何欺骗内核认为它在另一个线程中?

C++ 什么时候函数/调用应该是静态的/非静态的?

c++ - 大小为 0 的对象

c++ - 图形场景中的 QMouseEvents 不起作用

c++ - QPropertyAnimation 不工作

c++ - QTableView,设置单元格的字体和背景颜色

c++ - 在 Windows 中调试 QT 5.8 和打开 QFileDialog 时,gdborig.exe 随机崩溃

ios - 有人在 iOS 上的 OpenGL ES 2.0 中使用 glGenerateMipmap 得到模糊不可用的纹理吗?