问题描述
我一直在为这个问题苦苦挣扎。
我有一个 qopenglwidget 对象,用于渲染纹理(图像) 以及使用着色器(3.30 核心配置文件)在 OpenGL 上下文中的点云 (GL_POINTS)。
一切正常,但是当我尝试使用 QPainter 进行渲染时 一些文字,点云的透明度消失了。这发生在 将此添加到 qopenglwidget 的 paintGL() 函数中:
QPainter painter(this);
点变成实心(不透明),这不会发生 否则。当然,我可以摆脱 QPainter 并使用更多 着色器来渲染文本,但我很困惑,因为我会 没想到这会发生。我可能在 OpenGL 中遗漏了一些东西 设置,但我无法理解。
这是我配置 OpenGL 上下文的方式:
QSurfaceFormat format;
format.setVersion(3,3);
format.setDepthBufferSize(24);
format.setProfile(QSurfaceFormat::CoreProfile);
format.setRenderableType(QSurfaceFormat::OpenGL);
QSurfaceFormat::setDefaultFormat(format);
和
gldisable(GL_CULL_FACE);
glEnable(GL_VERTEX_PROGRAM_POINT_SIZE);
glEnable(GL_POINT_SMOOTH);
glEnable(GL_LINE_SMOOTH);
glEnable(GL_POINT_SPRITE);
glHint(GL_LINE_SMOOTH_HINT,GL_NICEST);
glHint(GL_POINT_SMOOTH_HINT,GL_NICEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
虽然,我认为这个问题与 OpenGL 没有任何关系 配置。任何帮助将不胜感激,谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)