gpt4 book ai didi

opengl-4 - OpenGL 4.1 和 Qt 5 的严重渲染问题

转载 作者:行者123 更新时间:2023-12-02 09:36:20 25 4
gpt4 key购买 nike

我看到了一些很有前途的引用资料,提到能够在现代 OpenGL 上运行 Qt5。我正在使用以下代码将我的 QQuickView 设置为 OpenGL 4.1 Core(我的 MacBook 在 OSX 10.9 上支持的最新版本)。

QSurfaceFormat sf = g_mainView->format();
sf.setProfile(QSurfaceFormat::CoreProfile);
sf.setVersion(4, 1);
g_mainView->setFormat(sf);

主要问题。首先,应用程序在尝试呈现文本时完全崩溃。如果我的 QML 中碰巧只有图像、矩形等,我会收到大量的片段着色器错误。

QOpenGLShader::compile(Fragment): ERROR: 0:1: '' :  #version required and missing.
ERROR: 0:5: 'varying' : syntax error syntax error

*** Problematic Fragment shader source code ***
#define lowp
#define mediump
#define highp

varying highp vec2 qt_TexCoord0;
uniform highp float qt_Opacity;
uniform lowp sampler2D source;
uniform lowp sampler2D maskSource;
void main(void) {
gl_FragColor = texture2D(source, qt_TexCoord0.st) * (texture2D(maskSource, qt_TexCoord0.st).a) * qt_Opacity;
}


***
QQuickCustomMaterialShader: Shader compilation failed:
"ERROR: 0:1: '' : #version required and missing.
ERROR: 0:5: 'varying' : syntax error syntax error
"

Qt5.3 还没有为现代 OpenGL 做好准备吗?还是我只是设置不正确?我想使用 OpenGL 4 嵌入我自己的 OpenGL 图形窗口,所以我的假设是我也需要在 GL 4 下运行该应用程序。还有别的办法吗?

最佳答案

我在您的错误报告中添加了一些评论并投了赞成票。它确实是一个 Qt 错误,如下所述:https://www.opengl.org/wiki/Core_Language_%28GLSL%29#Version第一个预处理器指令应该是#version,但是 Qt 自己添加了 lowp、mediump 和 highp 的定义,打破了这个要求。 Nvidia 驱动程序可以让您摆脱困境,但 Intel 的驱动程序却不行(我不知道 ATI 的),所以负责的开发人员可能没有在足够不同的硬件配置上进行测试。

实际上,没有简单的解决方法,您可以更改 Qt 代码以不添加这些定义(这是分发噩梦),或者不使用 QOpenGLShader 类,这意味着您自己管理原始 OpenGL 对象。

关于opengl-4 - OpenGL 4.1 和 Qt 5 的严重渲染问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25858868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com