【问题标题】:Application fails with "Compiling Vertex shader failed"应用程序因“编译顶点着色器失败”而失败
【发布时间】:2015-03-05 10:13:42
【问题描述】:

我正在使用 Qt 5.2.1 并为 OpenGL 编译它(使用构建选项“-opengl 桌面”)。现在,当我尝试使用应该使用 OpenGL 的组件时,它会失败并显示

qFatal("Compiling Vertex shader failed")

所有其他不使用 OGL 的 Qt 应用程序仍然可以正常工作。上面提到的测试应用程序只是一个可以使用的演示,不是自己写的废话。

知道可能是什么原因,或者我可以检查一下以找出问题所在吗?

谢谢!

【问题讨论】:

  • 顶点着色器由于某种原因无效,请检查 openGL 的编译输出日志以了解原因
  • 棘轮怪胎:在为 Windows 编译时,此日志会转到哪里?
  • 需要在运行时编译顶点着色器后索取
  • QOpenGLShaderProgram::log() 返回一个空日志,所以这里没有给出原因...

标签: qt opengl qt5 qt5.2


【解决方案1】:

Windows 默认只支持 DirectX 和 OpenGL 1.1。如果您没有安装正确的 OpenGL 驱动程序,您将收到此错误。

尝试从显卡供应商网站安装驱动程序(不是 Windows 自动安装的驱动程序),其中应包含正确的 opengl32.dll。

如果这是您的问题,使用带 ANGLE 的 Qt 也可以解决问题。

【讨论】:

  • Ich 使用其他使用 OpenGL 的应用程序对此进行了检查,并且它可以工作,因此驱动程序似乎不是问题。顺便说一句:是否有可用的 HWOTO 描述用 ANGLE 构建的地方? Qt Wiki 里的资料有点简陋,只需要告诉 ANGLE 就行了……
  • 好吧,我再靠近一点,我发现了一个日志输出“警告:您平台的 GLSL 语言不支持平面限定符。至少需要 GLSL 版本 1.2 和 GL_EXT_gpu_shader4 扩展”。这可能是驱动程序问题吗?
  • 它显示了一个有限的驱动程序,但如果你走到那一步,问题可能是由其他原因引起的。要使用角度构建,请不要将 -opengl 开关传递给配置。
  • jturcotte:删除 -opengl 开关会导致错误“无法打开包含文件:'GLES2/gl2.h':没有这样的文件或目录”。文件在那里...但是我必须在哪里配置此目录的路径?
  • 如果您没有安装 DirectX SDK,configure 可能会禁用它。见qt-project.org/wiki/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-21
  • 1970-01-01
  • 1970-01-01
  • 2021-12-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多