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

Posted

技术标签:

【中文标题】如何在 QOpenGLTexture 中创建带 alpha 的纹理?【英文标题】:How to create a texture with alpha in QOpenGLTexture? 【发布时间】:2016-10-22 01:01:57 【问题描述】:

我正在尝试使用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功能设置的问题。 【参考方案1】:

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

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

现在它起作用了。

【讨论】:

以上是关于如何在 QOpenGLTexture 中创建带 alpha 的纹理?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 django 中创建带参数的链接

如何在 Android 中创建带圆角的 ListView?

如何在 Oracle 12c 中创建带条件的索引?

如何在React MUI中创建带标签的TextField

如何在 PySpark 中创建带偏移量的 InputDStream(使用 KafkaUtils.createDirectStream)?

如何在 Swift 4 的 UIView 中创建带圆角的渐变边框