错误:不支持GLSL 3.30。支持的版本包括:1.10,1.20,1.30,1.00 ES,3.00 ES,3.10 ES和3.20 ES [关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误:不支持GLSL 3.30。支持的版本包括:1.10,1.20,1.30,1.00 ES,3.00 ES,3.10 ES和3.20 ES [关闭]相关的知识,希望对你有一定的参考价值。

我有一个用OpenGL开发的3D应用程序的Qt代码。我正在尝试使用QtCreator构建/运行Qt应用程序,但是我收到以下错误:

Error in compiling shader.

0:1(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.00 ES, 3.00 ES, 3.10 ES, and 3.20 ES

我尝试按照this answer的建议将以下内容添加到我的代码中:

QSurfaceFormat glFormat;
glFormat.setVersion(3, 3);
glFormat.setProfile(QSurfaceFormat::CoreProfile);
QSurfaceFormat::setDefaultFormat(glFormat);

实际上上面的代码工作,我的意思是错误得到了解决。但是,当应用程序运行时,它不会显示/呈现任何3D内容。例如,将STL文件导入Qt应用程序时,不会显示STL内容。有没有人遇到过类似的问题?

答案

只是为了帮助下一个可能遇到这样问题的人:


我在属于朋友的计算机上构建/运行应用程序,该计算机有两个图形卡:一个是Intel,一个是Nvidia。

在英特尔显卡的情况下,与OpenGL版本相同的先前问题也是如此。

在Nvidia显卡的情况下,没有发生OpenGL错误。应用程序运行没有任何问题,可以呈现/查看导入的STL文件。因此我的OpenGL错误与硬件有关。


我很想知道的是修改代码需要花费多少精力才能让3D应用程序在英特尔显卡上运行。谁知道?

以上是关于错误:不支持GLSL 3.30。支持的版本包括:1.10,1.20,1.30,1.00 ES,3.00 ES,3.10 ES和3.20 ES [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

C++ OpenGL 着色版本错误 - 不支持 GLSL x [Ubuntu 16.04]

默认的 GLSL 着色器是啥样的?对于版本 330

不支持 GLSL 330 内核

OpenGL 3.30 / GLSL 3.30 - MRT 输出黑色纹理

超过一个字符指针时的GLSL编译错误(glShaderSource)

不支持 GLSL 1.30