opengl版本太低 http://forum.ubuntu.com.cn/viewtopic.php?f=42&t=163346&view=previous 上面的文章是Ubuntu论坛的一个贴子,讲述了opengl、mesa、和显卡驱动的关系,不过我还是没有看明白(晕啊) 【摘录】OpenGL是一套国际标准,所谓国际标准,就是写在纸面上的东西,而不是实际可用的东西。不过各大厂商会遵照这堆纸编写他们的驱动程序中的OpenGL功能。即OpenGL是标准,驱动+ICD+OpenGL.dll是实现 / 如何在Windows下使用OpenGL 2.0的API(包括GLSL) http://bbs.gameres.com/showthread.asp?threadid=109485 先简单的说我所知道的opengl在windows下的开发方式: 1、使用windows自带的opengl1.1+ glut(需要自己编译 )或者其他的glut增强版人freeglut、openglut 2、使用mesa 3、使用windows自带的opengl1.1+ glut + glew进行扩展 在windows下配置mesa实现的opengl有些注意事项: 首先,你要到www.mesa3d.org下载源程序包,一般要用到两个包mesaLib.zip和mesaGLUT.zip。值得一题的是,和许多开源项目一样,Mesa3D也只是提供了源代码,并没有提供直接可用的二进制文件,使用者需要重新编译源代码来的到可以使用的二进制文件。下载完成之后,把两个包放在同一个目录下面,直接选择“解压到当前目录...”来解压两个包,默认情况下,两个包被解压到了同一个文件夹下面(比如,Mesa-7.0.3)。然后,按照“/Mesa-7.0.3/windows/VC8”路径找到Visual Studio 2005的解决方案文件(mesa.sln)。打开它,发现这个解决方案中有好多工程(一般是4个,gdi、glu、mesa、osmesa),什么设置也不用修改(默认是Debug目标,而不是Release,千万不要修改),直接分别在右边的“解决方案资源管理器”中右键单击各个工程项,选择“生成”。等待所有的工程都生成成功之后你可以从“/Mesa-7.0.3/lib”这个路径下面得到3个DLL文件(opengl32.dll、glu32.dll、osmesa32.dll)和对应的库文件(*.lib)。同样在“/Mesa-7.0.3/windows/VC8/progs/glut”路径下面,你可找到GLUT的工程文件(glut.vcproj),依照同样的方法,生成GLUT工程。之后可以在“/Mesa-7.0.3/lib”这个路径下找到glut32.dll以及相应的库文件。 好了OpenGL 2.0的DLL和相应的库文件就全都得到了。编程的时候所需的所有头文件可以在“Mesa-7.0.3/include”这个路径下找到(或者你干脆就把这个目录设置成Visual Studio的include搜索目录)。 这里需要注意一点,由于编程时要对gl.h、glu.h等头文件进行#include进行引用,这些头文件会和Visual Studio中自带的gl.h、glu.h等头文件冲突,所以最好删除Visual Studio中的相应文件(建议对这些文件备份);同理,Visual Studio中的opengl32.lib文件也要删掉(建议备份)。
我自己添加的: 或者还有另外一种方法,在设置环境变量的时候,将mesa的include、lib、path添加到系统的include、lib、path的前面,参考我下面的 // mesa(opengl另外的一个实现).bat @echo off echo 设置Mesa(OpenGL的非官方实现)环境变量 set MESA_DIR=D:/program/Mesa/Mesa-7.4.2 rem 已经将D:/program/Mesa/Mesa-7.4.2/bin加入到了用户的path环境变量中 set include=%MESA_DIR%/include;%include% rem 不包含debug版本,已经编译了debug版本, set lib=%MESA_DIR%/lib;%lib% 根据上面引用的帖子的内容,很多人认为mesa在windows下比d3d慢,有几种说法: 1、在windows下的opengl开发就使用windows自带的1.1版本的opengl实现,如果要使用opengl2.0、2.1或者更高版本的opengl,则可以用扩展技术,但是这需要显卡驱动的支持,并且不能跨平台 2、使用glew。这个库对不同的opengl扩展进行了统一的封装 3、直接使用windows的d3d或者managed d3d(.net版本的d3d) 4、mesa在linux上更加适合,且性能不比d3d在windows上的性能差,也就是说mesa不适合于windows |