OpenGL的编程环境搭建

搭建环境:Windows 7 + vs2008

环境推荐理由:目前开发OpenGL最易用的工具是vs,所以要在Windows操作系统环境下。经测试,win7和win8都是可以的,xp和vista没有测试,请博友们自行尝试。

vs我尝试过vs2012和vs2008,vs2008之后就不自带图形库了,所以还要自己安装glut,虽然不麻烦,但是能少一事就少一事吧。

针对有些同学说vs2008还需要glaux库,这里做一下说明,vs2008也是自带了glaux.lib的。具体路径:

C:\Program Files\Microsoft SDKs\Windows\v5.0\Lib\IA64

所以在vs2008里,我们的头文件只要包含

#include <windows.h>        // Header File For Windows
#include <gl\gl.h>            // Header File For The OpenGL32 Library
#include <gl\glu.h>            // Header File For The GLu32 Library
也就是说安装了vs2008,不需要手动添加一些OpenGL库就可以编写程序了。经测试 Nehe的代码都可以直接运行。
 
不过为了开发方便,推荐手动安装两个库,周炜的nehe教程第一课里就提到这两个库
#include <glew.h>        // 包含最新的gl.h,glu.h库
#include <glut.h>        // 包含OpenGL实用库

 

glew下载地址:

http://glew.sourceforge.net/

glut现已经被freeglut替代,下载地址

http://sourceforge.net/projects/freeglut/

解压

进到freeglut-2.8.1\VisualStudio\里面有2008,2010,2012三个文件夹,分别对应着VS2008,VS2010,VS2012,选2008,运行freeglut.sln。选择release,然后生成解决方案。

image

回到freeglut根目录,将生成的文件复制到对应的位置

lib/x86/freeglut.dll to C:\Windows\System32

lib/x86/freeglut.lib to Microsoft Visual Studio 9.0\VC\lib

include/GL/*.h to \Microsoft Visual Studio 9.0\VC\include/Include/GL

这样freeglut就配置完成了。

 

然后我们检测一下opengl的版本

//查看opengl的版本
#include<Windows.h>
#include <stdio.h>
#include <GL/glut.h>
int main(int argc, char** argv)
{
    glutInit(&argc,argv);
    //显示模式初始化
       glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB|GLUT_DEPTH);
    //定义窗口大小
       glutInitWindowSize(300,300);
    //定义窗口位置
       glutInitWindowPosition(100,100);
    //创建窗口
     glutCreateWindow("OpenGL Version");
     const GLubyte* name = glGetString(GL_VENDOR); //返回负责当前OpenGL实现厂商的名字
    const GLubyte* biaoshifu = glGetString(GL_RENDERER); //返回一个渲染器标识符,通常是个硬件平台
    const GLubyte* OpenGLVersion =glGetString(GL_VERSION); //返回当前OpenGL实现的版本号
   const GLubyte* gluVersion= gluGetString(GLU_VERSION); //返回当前GLU工具库版本
    printf("OpenGL实现厂商的名字:%s\n", name);
    printf("渲染器标识符:%s\n", biaoshifu);
    printf("OOpenGL实现的版本号:%s\n",OpenGLVersion );
    printf("OGLU工具库版本:%s\n", gluVersion);
   getchar();
    return 0;
}

 

image

 

教程到此为止,来日再作补充。

posted @ 2013-09-25 16:16  古唱  阅读(275)  评论(0编辑  收藏  举报