VirtualBox下Ubuntu 18.04.5 LTS运行VTK脚本GL版本不支持怎么解决
可行解决方法
方法1:强制Mesa指定OpenGL版本
Mesa 20.0本身支持OpenGL 3.2,只是VirtualBox默认环境下会优先暴露2.1版本,通过临时设置环境变量即可覆盖:
- 单次运行脚本时直接添加环境变量前缀:
MESA_GL_VERSION_OVERRIDE=3.2 MESA_GLSL_VERSION_OVERRIDE=150 python3 Cylinder.py - 如需永久生效,可将以下两行写入
~/.bashrc文件末尾:
写入后执行export MESA_GL_VERSION_OVERRIDE=3.2 export MESA_GLSL_VERSION_OVERRIDE=150source ~/.bashrc生效,后续运行VTK脚本无需再加前缀。
方法2:调整VirtualBox虚拟机显示配置
需先关闭运行中的Ubuntu客户机,再执行以下操作:
- 打开VirtualBox对应虚拟机的设置页面,切换到「显示」标签
- 将显存大小调整至128MB及以上,勾选「启用3D加速」选项后保存配置
- 重新启动Ubuntu客户机,卸载原有可能存在的版本不符的增强功能:
sudo apt remove -y virtualbox-guest* - 点击虚拟机顶部菜单栏「设备」->「安装增强功能」,挂载镜像后执行安装脚本:
sudo /media/$USER/VBox_GAs_*/VBoxLinuxAdditions.run - 安装完成后重启客户机即可,此时再次执行
glxinfo | grep "OpenGL version"可看到版本升级到3.2+。
方法3:使用VTK软件渲染(性能较低,适配所有场景)
如果前两种方法无效,可切换为VTK软件渲染后端,无需依赖硬件OpenGL支持:
- 先安装依赖包:
sudo apt install -y libosmesa6 - 运行脚本时添加环境变量指定渲染后端:
VTK_RENDERING_BACKEND=OSMesa python3 Cylinder.py
内容的提问来源于stack exchange,提问作者lskrinjar
相关产品推荐
相关产品推荐

