ubuntu opengl(ubuntu matlab)
Ubuntu上使用Nvidia显卡进行OpenGL开发
在Ubuntu上使用Nvidia显卡进行OpenGL开发时,Docker化环境是开发的新趋势。首先,确保你的环境具备Nvidia官方的nvidia/opengl镜像,包括开发版本nvidia/opengl:1.0-glvnd-devel和运行时版本nvidia/opengl:1.0-glvnd-runtime。容器内需要额外安装CMake、g++等编译工具和libfreeimage-dev库,以满足Gemfield的需求。
启动Docker时,务必配置允许root进程访问Xorg会话,否则运行GUI程序会报错。通过设置启动参数,容器内的GUI程序可以正常运行。开发过程中,例如使用CivilNet/Gemfield仓库的Hello Triangle代码,它利用EGL和Xlib与X Server交互,链接libEGL.so、libGLESv2.so和libX11.so库。
自2016年起,Linux平台的OpenGL ABI在glvnd规范的推动下得到了显著改进。编译时,这些库实际上是NVIDIA在libglvnd仓库中的实现,它们会根据厂商的不同实现功能。运行Hello Triangle,你将在Linux窗口系统上看到一个红色的三角形。
总结,如果你在Ubuntu上使用Nvidia显卡开发OpenGL,需要了解并遵循这些步骤。如有任何疑问或遇到问题,欢迎在评论区留言讨论。
【OpenGL】Ubuntu 20.04 配置 OpenGL 环境
本文将详细介绍如何在Ubuntu 20.04上配置OpenGL环境,包含安装开发工具、编译测试以及GLFW、GLAD开发环境的配置。
首先,安装CLion。访问其官方下载页面,下载对应版本的压缩包,解压后创建快捷方式。在属性中修改文件权限,使其可读、可写、可执行。将快捷方式移动至指定文件夹,完成安装。
接着,安装相关包。根据个人需求选择合适的库和版本,确保OpenGL环境的构建和运行。
编译并运行测试项目。新建名为“test”的C项目,进行编译和运行,验证环境配置是否正确。
配置GLFW和GLAD。访问官网进行选择,生成所需代码文件。下载zip文件解压后,将文件移动到指定路径,以确保项目可以正常引用GLFW和GLAD库。
总结,通过以上步骤,Ubuntu 20.04下OpenGL开发环境(GLFW_3.3.1+ GLM_0.9.9+ GLAD)成功搭建完成。这为后续进行OpenGL编程提供了良好的基础。
Ubuntu 12.04 下安装 openGL 驱动时,究竟做了什么事
Ubuntu下安装 openGL驱动的确把我折腾惨了
本人机器是 HP的使用 i5的集成显卡
下载了 intel的 installer(intel-linux-graphics-installer_1.0.1_amd64.deb),他们不支持Ubuntu 12.04,只支持 13.x
找了个 ATI x1300的老显卡,官方的驱动(ati-driver-installer-9-3-x86.x86_64.run)只支持了 Ubuntu 8.x 9.x(让我深感,计算机真是消费品,过时了就用不起来了)
只好买了一个 Nvidia GT610显卡,下载官方的 NVIDIA-Linux-x86_64-331.49.run,顺利装上了
这驱动做了如下的事情:
1)把驱动装到 Kernel中(我升级了 Kernel,又了重装驱动)
2)把/usr/lib/libGL.so替换为 Nvidia的(用 ldd看就知道了),当然要把nvidia自己的 so也copy到,这几个目录
[html] view plaincopy在CODE上查看代码片派生到我的代码片
ldd/usr/lib/libGL.so
linux-vdso.so.1=>(0x00007fffe91ff000)
libnvidia-tls.so.331.49=>/usr/lib/tls/libnvidia-tls.so.331.49(0x00007fa1a58c0000)
libnvidia-glcore.so.331.49=>/usr/lib/libnvidia-glcore.so.331.49(0x00007fa1a30b1000)
libX11.so.6=>/usr/lib/x86_64-linux-gnu/libX11.so.6(0x00007fa1a2d7b000)
libXext.so.6=>/usr/lib/x86_64-linux-gnu/libXext.so.6(0x00007fa1a2b6a000)
libc.so.6=>/lib/x86_64-linux-gnu/libc.so.6(0x00007fa1a27aa000)
libdl.so.2=>/lib/x86_64-linux-gnu/libdl.so.2(0x00007fa1a25a5000)
libm.so.6=>/lib/x86_64-linux-gnu/libm.so.6(0x00007fa1a22a9000)
libxcb.so.1=>/usr/lib/x86_64-linux-gnu/libxcb.so.1(0x00007fa1a208b000)
/lib64/ld-linux-x86-64.so.2(0x00007fa1a5e15000)
libXau.so.6=>/usr/lib/x86_64-linux-gnu/libXau.so.6(0x00007fa1a1e87000)
libXdmcp.so.6=>/usr/lib/x86_64-linux-gnu/libXdmcp.so.6(0x00007fa1a1c81000)
对于 i386的支持库,放在/usr/lib32中
[html] view plaincopy在CODE上查看代码片派生到我的代码片
ldd/usr/lib32/libGL.so
linux-gate.so.1=>(0xf7718000)
libnvidia-tls.so.331.49=>/usr/lib32/tls/libnvidia-tls.so.331.49(0xf75f1000)
libnvidia-glcore.so.331.49=>/usr/lib32/libnvidia-glcore.so.331.49(0xf53ac000)
libX11.so.6=>/usr/lib/i386-linux-gnu/libX11.so.6(0xf5277000)
libXext.so.6=>/usr/lib/i386-linux-gnu/libXext.so.6(0xf5265000)
libc.so.6=>/lib/i386-linux-gnu/libc.so.6(0xf50bb000)
libdl.so.2=>/lib/i386-linux-gnu/libdl.so.2(0xf50b6000)
libm.so.6=>/lib/i386-linux-gnu/libm.so.6(0xf508a000)
libxcb.so.1=>/usr/lib/i386-linux-gnu/libxcb.so.1(0xf5068000)
/lib/ld-linux.so.2(0xf7719000)
libXau.so.6=>/usr/lib/i386-linux-gnu/libXau.so.6(0xf5064000)
libXdmcp.so.6=>/usr/lib/i386-linux-gnu/libXdmcp.so.6(0xf505d000)
开发 Android时使用, Android使用 i386是从/usr/lib/i386-linux-gnu装载
所以要把 lib32中所有文件复制到/usr/lib/i386-linux-gnu
3) Xorg相关
Xorg是开源的 Xserver实现
nvidia要与Xorg集成的库,放在usr/lib/xorg/modules下面,并改下/etc/X11下面的东西
xorg.conf
让 Xorg加载 so
[html] view plaincopy在CODE上查看代码片派生到我的代码片
Section"Module"
Load"record"
Load"extmod"
Load"dbe"
Load"dri2"
Load"glx"
EndSection
装载/usr/lib/xorg/modules/extensions/下面的 libglx.so, libdri2.so等
让 Xorg加载 nvida驱动
[html] view plaincopy在CODE上查看代码片派生到我的代码片
Section"Device"
Identifier"Card0"
Driver"nvidia"
BusID"PCI:1:0:0"
EndSection
附带转帖
Ubuntu通过重新生成/etc/X11/xorg.conf文件来调整分辨率
1. Ctrl+Alt+F1, sudo service gdm stop
2. sudo Xorg-configure(生成文件~/xorg.conf.new)
3. sudo service gdm start
4. mv~/xorg.conf.new/etc/X11/xorg.conf
5. gtf 1280 1024 60-x
6.然后将上一步中gtf命令生成的内容:
Modeline"1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060-HSync+Vsync
插入到/etc/X11/xorg.conf中:
Section"Monitor"
Identifier"Monitor0"
VendorName"Monitor Vendor"
ModelName"Monitor Model"
Modeline"1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060-HSync+Vsync
EndSection
重新启动X。搞定。
如果不想生成xorg.conf文件,并且只想临时的调整分辨率,那么可以按照如下方法实现:
cvt 1280 1024
sudo xrandr--newmode"1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063-hsync+vsync
sudo xrandr--addmode VGA1"1280x1024_60.00"
sudo xrandr--output VGA1--mode"1280x1024_60.00"
就可以临时的调整分辨率到1280x1024.