You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CGAL 5.3三角剖分绘制示例运行报错 出现GLSL着色器编译问题

CGAL 5.3 三角剖分示例GLSL着色器报错解决方法

问题根因

报错核心为GLSL语法版本不兼容:in/out关键字是GLSL 1.30及以上版本的特性,CGAL 5.3迭代时更新了自带演示组件的着色器代码,弃用了GLSL 1.10版本的attribute/varying关键字,而Ubuntu 20.04默认的OpenGL兼容性上下文默认使用GLSL 1.10,因此着色器编译失败,弹出的窗口无渲染内容。

解决方案

按操作复杂度从低到高排序:

方案1:临时指定OpenGL核心模式运行(无需改代码、无需重新编译)

运行程序时添加环境变量强制Qt使用核心模式OpenGL即可,命令如下:

QT_OPENGL=core ./draw_triangulation_2

方案2:修改示例代码显式指定OpenGL版本

如果方案1不生效,可修改示例代码全局指定OpenGL版本:

  1. 打开draw_triangulation_2.cpp,在头文件引入区域添加:
#include <QSurfaceFormat>
  1. 在main函数最开头(创建Qt应用实例之前)添加如下代码:
QSurfaceFormat format;
format.setVersion(3, 3);
format.setProfile(QSurfaceFormat::CoreProfile);
QSurfaceFormat::setDefaultFormat(format);
  1. 重新执行make draw_triangulation_2编译后直接运行即可。

方案3:升级显卡驱动

如果使用NVIDIA/AMD独立显卡,安装对应厂商的闭源官方驱动,默认支持更高版本的GLSL,无需额外配置即可正常运行。

验证方法

可执行如下命令查看当前系统支持的GLSL版本:

glxinfo | grep "GLSL version"

输出包含3.30及以上版本即说明核心模式可用。

内容的提问来源于stack exchange,提问作者HEKTO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 04:48:00