系统:Dell Latitude E6520
显卡
Intel® HD Graphics 3000
NVIDIA® NVSTM 4200M (DDR3 512MB) Discrete Graphics with Optimus
Ubuntu 12.04
我安装了大黄蜂。
我安装了 PyOpenGL 并按照教程(http://pyopengl.sourceforge.net/context/tutorials/shader_1.xhtml)
Python 上的结果是:
RuntimeError: ('Shader compile failure (0): 0:1(10): error: GLSL 3.30 is not supported. Supported versions are: 1.00 ES, 1.10, 1.20, and 1.30\n\n', ['#version 330\n void main() {\n gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;\n }'], GL_VERTEX_SHADER)
我知道 Ubuntu 不支持 NVIDIA Graphics with Optimus。但我认为 Intel Graphics 应该支持最新版本的 OpenGL。
我该怎么办?我可以更新驱动程序之类的东西以使英特尔显卡支持 GLSL 3.30 吗?
如果不能,我如何在 PyOpenGL 中使用较低版本的 OpenGL?http://pyopengl.sourceforge.net/,它写道:PyOpenGL 3.0.2 包括对以下版本的支持:OpenGL v1.1 至 4.3
因此可以选择将 OpenGL 设置为较低版本。但我找不到方法。
救命!提前谢谢!
[更新](1)
因此可以选择将 OpenGL 设置为较低版本。但我找不到方法。
我在代码中找到了该选项。需要指定版本;当然,因此也需要一些代码。
(2)从 wiki/GLSL#Versions 来看,对应的 GLSL 版本是
GLSL 版本 OpenGL 版本 1.30.10 3.0 1.40.08 3.1 1.50.11 3.2 3.30.6 3.3
因此看来 Intel Graphics 3000 支持 OpenGL 版本 3.0。
我去了英特尔官方网站和 Linux 驱动程序网站,但找不到答案。(Linux 驱动程序*(我不允许发布超过 2 个链接 :(
Linux 图形 https://01.org/linuxgraphics/search/node/HD%20Graphics%203000)
但现在我几乎知道我将使用 OpenGL 3.0,并且只遵循 OpenGL 3.0 的教程。谁能推荐一些好的教程?
答案1
偶然看到了这个问题,并想到,也许今天有人也面临同样的情况......
你的NVIDIA NVSTM 4200M图形由最新的官方支持NVIDIA 驱动程序 355.11!
彻底删除所有 NVIDIA 软件并用 NVIDIA 驱动程序 355 和 Optimus 替换。
当。。。的时候GRUB 启动菜单出现 :突出显示Ubuntu 菜单项然后按下E键。将参数
添加nouveau.modeset=0
到 linux 行的末尾...然后按F10启动。
当登录屏幕出现时按Ctrl+ Alt+ F1。
输入您的用户名和密码。现在通过执行以下命令卸载所有与 NVIDIA 相关的软件:
sudo apt-get purge nvidia* bumblebee
sudo reboot
当。。。的时候GRUB 启动菜单出现 :突出显示Ubuntu 菜单项然后按下E键。将参数
添加nouveau.modeset=0
到 linux 行的末尾...然后按F10启动。
当登录屏幕出现时按Ctrl+ Alt+ F1。
输入您的用户名和密码。现在通过执行以下命令重新安装 NVIDIA 驱动程序:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-355 nvidia-prime
sudo reboot
有关 NVIDIA 355 驱动程序版本的更多信息,请参阅NVIDIA 发行说明。
您可以使用以下命令检查 OpenGL 版本:
sudo apt-get install mesa-utils
sudo glxinfo | grep "OpenGL version"
输出内容如下:
OpenGL version string: 4.5.0 NVIDIA 355.11