一、环境准备:
系统环境win7,64位,双显卡:集成显卡+gt540m,gt540建议下载最新的驱动,可以支持到opengl4.3标准,一般双显的笔记本,程序默认启用的是集显,我机器的集显驱动有点老,只能支持到opengl3.0,所以讲默认显卡设置为独显。
开发环境:vs2010
PS:查看机器及显卡支持的OpenGL版本可以使用工具GPU_Caps_Viewer_v1.18.1或者更高版本
二、OpenGL拓展包下载:
2.1 GLEW:windows开发环境,默认只支持opengl1.1的环境,但 OpenGL现在都发展到4.4了,要使用这些OpenGL的高级特性,就必须下载最新的扩展,另外,不同的显卡公司,也会发布一些只有自家显卡才支 持的扩展函数,你要想用这数涵数,不得不去寻找最新的glext.h,有了GLEW扩展库,你就再也不用为找不到函数的接口而烦恼,因为GLEW能自动识别你的平台所支持的全部OpenGL高级扩展涵数。也就是说,只要包含一个glew.h头文件,你就能使用gl,glu,glext,wgl,glx的全 部函数。GLEW支持目前流行的各种操作系统(including Windows, Linux, Mac OS X, FreeBSD, Irix, and Solaris)。
GLEW下载地址:http://glew.sourceforge.net/,目前最新版本1.10
GLEW下载完成后,bin下面有个glewinfo.exe,直接运行,会在同目录下市场一个txt文件,显示系统显卡支持的opengl版本和具体函数。
2.2 FreeGlut:Freeglut是一个GLUT (OpenGL Utility Toolkit) 的开源实现,使用非常广泛。OpenGL Redbook使用Freeglut代替GLUT编写代码,因为老的glut诸多不方便的协议,所以freeglut可作为glut的替代版本,具体可以参考http://baike.baidu.com/link?url=4xGj7YahqPtwq_o_1gX0LMrnJkMTx9M8wVe1sEIXsg3AofYKfurbZ8-NZrBS3I5geNhbWnZI7YCqLZ_5T3fa0a
FreeGLut下载地址:http://www.transmissionzero.co.uk/software/freeglut-devel/,目前最新版本2.8
三、环境配置
下载glew解压,讲include下面的头文件盒lib下面的库文件,拷贝到windows SDK中。不同的系统或者开发安装包可能不一样,我的机器是,头文件拷贝到:C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl,库文件拷贝到C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib,如果装的vs版本太多,可能有v6,v5之类的,vs2010对应的是v7.0,vs2008对应的是v6.0,如果安装的是64位,拷贝的地址应该为:C:\Program Files \Microsoft SDKs\Windows\v7.0A\Include\gl
解压freeglut,同样拷贝头文件和库文件到glew拷贝的路径下。
四、下载示例代码
如果没有写过glsl程序,可以去三光网站下载一个入门的示例代码,如:http://www.lighthouse3d.com/tutorials/glsl-tutorial/setup-for-glsl-example/,一个简单的茶壶示例,具体的着色语言语法这里就不解释了,下载下来或者通过代码地址下载
下载程序下来之后,默认应该是vc6的工程,直接讲dsw用vs2010打开
程序默认没有设置链接库,可以使用代码:
#pragma comment(lib,"glew32.lib")
#pragma comment(lib,"freeglut.lib")
或者在project下面的链接器->输入->附加依赖项,输入glew32.lib和freeglut.lib。
五、直接编译,运行程序,会报glew32.dll缺失,可以讲刚才下载的glew32.dll和freeglut.dll放到程序的生成路径下,即跟生成的exe放在同一个目录中。再次运行,会出现:
PS:如果用的是笔记本双显卡,如果vs启动用的是默认选择独立显卡(在启动程序上点击右键,有个“用图形显示处理器运行”选项,选择你的独立显卡),这样才能支持独立显卡的特性进行调试
感谢的参考资料:
1.http://openglbook.com/setting-up-opengl-glew-and-freeglut-in-visual-c/
2.http://www.cnblogs.com/madfrog/archive/2010/06/25/1765259.html