⑴ linux 下大部分顯卡驅動對OPENGL支持不好
我對3D驅動開發是一點都不懂……
但肯定DirectX在Linux下是沒啥用的,那是微軟的介面~~
OpenGL介面Linux肯定支持,但貌似是比較挑顯卡
其他還有什麼3D驅動的介面我也不了解了
給你提供個思路:雷神之錘的3D引擎貌似是開源的,本身支持Linux平台,你可以去找一下相關的開源項目。把源代碼拿來看看人家是怎麼做的~~
⑵ OPENGL在LINUX系統下的實現
用VC++編譯好了的程序當然不能移植到LINUX下,但是源碼可以移植過去,特別是如果你使用的是GLUT庫的話就沒問題了;有關模型的你可以用3DMAX做,然後保存成.3ds格式,網上有個讀3DS庫的類的,搜索一下就有了
⑶ 在Linux上怎麼安裝OpenGl
1.安裝IDE: 這里使用的是codeblocks
sudo apt-get install codeblocks
2.配置Linux下的openGL
下載並安裝openGL所需要的庫
sudo apt-get install mesa-common-dev libgl1-mesa-dev libglu1-mesa-dev
sudo apt-get install freeglut3-dev
sudo apt-get install build-essential gdb subversion
sudo apt-get install automake autoconf libtool
sudo apt-get install libgtk2.0-dev libxmu-dev libxxf86vm-dev
3.配置codeblocks IDE
在Settings->compiler and debugger settings->link settings
添加:
/usr/lib/libGL.so
⑷ 請問如何在linux下安裝mesa(opengl)
參看這篇文章:
http://bbs.chinaunix.net/viewthread.php?tid=326757&highlight=Apache%A1%A2SSL
⑸ 求問OpenGL在windows,linux,Mac三大系統上一般那都用哪些軟體來開發
1.所有windows下的軟體包括游戲都不能再Linux或mac下運行,他們是完全不同的系統,可執行文件是不能在不同系統下運行的。
2.基於上述原因,很多軟體如果缺少Linux或Mac版本,那你就無法使用,這對一些有某種特定軟體需求的人群來說就很麻煩,你可以尋找支持該系統的替代軟體,但並不總是能百分之百地代替;但如果基於家庭用途,而且不是特定游戲的愛好者,你可以考慮別的系統;
3.三種系統的區別:
Mac OSX是蘋果旗下電腦的專用系統,一直以來蘋果電腦和其它電腦都是區分開來的(即Mac和PC),Mac OSX系統是作為Mac的一部分發售的,任何把Mac OSX系統用於PC的行為都是違法的(當然我們作為黑金塔愛好者不會在意),而且把OSX裝在普通PC上是非常困難的。OSX比Windows更為易用(當然也因人而異),也能出色地完成PC上的任務(例如iLife和iWork,以及系統的Mail之類的都遠強於Windows),但OSX在法律和兼容性(因為是用於Mac的系統,硬要在PC上用當然會有兼容性問題。。)上的局限,無法廣泛地流傳,由於用戶群小,隨之而來的問題比如網銀(中國)對Mac缺乏良好的支持等等;
Linux是一類開源免費的操作系統,因此被廣泛看好。Linux早就擁有了桌面版本,比如Ubuntu,也是類似於視窗的操作系統,可以像使用Windows那樣操作。你可以得到正版免費的Ubuntu,甚至可以向Ubuntu申請正版光碟,當然也可以下載正版刻錄。至於游戲,好像比Mac OSX還少。。。而且Linux版本眾多,也是一大問題。。由於它的系統架構,擁有Windows無法擁有的一些特性(比如不會產生磁碟碎片等等)
Windows嘛,隨著使用時間的積累,Windows會越來越臃腫,系統會越來越慢,貌似這是相對於Linux最大的缺點。但畢竟是使用人群最多的系統,所以得到了良好的支持~~
⑹ Linux下如何安裝OpenGL
有個 mesa3D是linux下的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 也 到,這幾個目錄
[html] view plain在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 plain在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/moles下面,並改下 /etc/X11 下面的東西
xorg.conf
讓 Xorg載入 so
[html] view plain在CODE上查看代碼片派生到我的代碼片
Section "Mole"
Load "record"
Load "extmod"
Load "dbe"
Load "dri2"
Load "glx"
EndSection
裝載 /usr/lib/xorg/moles/extensions/ 下面的 libglx.so, libdri2.so 等
讓 Xorg 載入 nvida 驅動
[html] view plain在CODE上查看代碼片派生到我的代碼片
Section "Device"
Identifier "Card0"
Driver "nvidia"
BusID "PCI:1:0:0"
EndSection
附帶轉帖
Ubuntu通過重新生成/etc/X11/xorg.conf文件來調整解析度
http://blog.chinaunix.net/uid-25909722-id-3019407.html
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.
⑻ linux平台下 OPENGL 貼圖問題 我希望讀取BMP圖片 並貼圖在一個矩形上 但是現在貼圖效果很差。。。
LZ你貼圖參數裡面過濾模式選擇線性就行
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
這里兩個GL_NEAREST改為GL_LINEAR 貼圖就不會馬賽克了
還有注意的是貼圖長寬最好是2的倍數
⑼ 如何在Linux下使用OpenGL+ C++開發
前提是:
1.配置好了Ubuntu下的c++環境,gcc以及g++可用。
2.使用eclipse for c+做OpenGL開發
步驟一:
在ubuntu終端下運行以下命令,安裝opengl所需要的庫文件
$ sudo apt-get install build-essential
$ sudo apt-get install freeglut3-dev
步驟二:
運行一下opengl實例,測試配置的環境是否安裝成功
在eclipse下新建一個工程文件,假設我們命名為Test,在工程Test裡面新建一個C++源代碼文件,這里我們把它命名為main.cpp,在main.cpp文件中打入一下代碼
#include<GL/glut.h>
voidinit();
voiddisplay();
intmain(intargc,char*argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE);
glutInitWindowPosition(0,0);
glutInitWindowSize(300,300);
glutCreateWindow("OpenGL3DView");
init();
glutDisplayFunc(display);
glutMainLoop();
return0;
}
voidinit()
{
glClearColor(0.0,0.0,0.0,0.0);
glMatrixMode(GL_PROJECTION);
glOrtho(-5,5,-5,5,5,15);
glMatrixMode(GL_MODELVIEW);
gluLookAt(0,0,10,0,0,0,0,1,0);
}
voiddisplay()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,0,0);
glutWireTeapot(3);
glFlush();
}
右擊工程文件名
Test->點擊屬性(Properties)->C/C++Bulid->Settings->GCC C++Linker->Libraries,
在這個窗口中添加幾個個庫,
分別為GLU,glut,GL,
點擊OK。
如果還想使用opencv,
在這里還加入cv,cxcore,highgui等庫文件,
根據自己的需要來定
同時在GCC C++ Compiler->Includes下的incudepath中添加路徑/usr/include/GL
如果還想使用opencv中的庫,那麼加入opencv的路徑,一般是/usr/include/opencv
運行以上程序,會顯示一個茶壺形狀的opengl運行結果