由于手头笔记本只支持到OpenGL 2.1.0,所以只能下载对应的glew库。

 

对于一个OpenGL初学者来说,搞懂本机OpenGL版本必须高于GLEW库版本这件事,废了我好长时间。

 

进入主题

· 本教程适合所有在VS上搭建OpenGL开发环境的朋友,不仅仅是低版本OpenGL!

 

· OpenGL版本如何查看?

      只需先随意下载任意版本的glew解压,点击文件夹bin目录下的visualinfo.exe,屏幕一闪而过,这时该文件下多了一个文本文件visualinfo.txt,打开看第三行:
OpenGL version string: 2.1.0 - Build 8.15.10.2413
这里我的版本使2.1.0

 

下载:

  1. glew: 找到对应本机OpenGL版本的glew

  2. gluw:  opengl官网上有提供,点击链接直接下载

  3. VS2017:

 

配置glew: 

  1. 拷贝glew32.dll至system32文件夹下

  2. 拷贝glew32.lib至VC目录下lib文件夹。我的VS目录地址:D:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\lib\x86

  3. 拷贝glew.h和wglew.h至VC目录下include\GL目录下。注意GL文件夹需自己创建(可以直接复制glew解压文件中的GL文件夹)。我的VS目录地址:D:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\include

  4. 创建控制台项目,调出VS的资源视图,项目上右击进入属性,链接器-输入-附加依赖项:新加入glew32.lib

     

配置glut:

  1. 把.h文件放到VC的include路径下的GL文件夹下

  2. glut.lib和glut32.lib放到VC的lib文件夹下

  3. glut.dll,glut32.dll,放到系统盘下\WINDOWS\system32

  4. 完成后,新建控制台项目,复制进示例源码到.cpp文件即可。源码在下方,注意不要覆盖掉cpp文件的自带的头文件

完成:

   最后注意要在Debug x86下调试运行。

附简单OpenGL示例代码:

#include 
  #include 
  #include 
    void init()  {      glewInit();      glClearColor(1.0,1.0,0.0,0.0);      glBlendFunc(GL_ONE,GL_ONE);      glEnable(GL_BLEND);  }    void display()  {      glClear(GL_COLOR_BUFFER_BIT);      glColor3f(0.0,0.0,1.0);      glRectf(-0.5,-0.5,0.5,0.5);      glFlush();  }    void keyboard(unsigned char key,int x,int y)  {      switch(key)      {      case 'a':case 'A':          glBlendEquation(GL_FUNC_ADD);          break;      case 's':case 'S':          glBlendEquation(GL_FUNC_SUBTRACT);          break;      case 'r':case 'R':          glBlendEquation(GL_FUNC_REVERSE_SUBTRACT);          break;      case 'm':case 'M':          glBlendEquation(GL_MIN);          break;      case 'x':case 'X':          glBlendEquation(GL_MAX);          break;      case 27:          exit(0);          break;      }      glutPostRedisplay();  }    int main(int argc,char** argv)  {      glutInit(&argc,argv);      glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);      glutInitWindowSize(500,500);      glutInitWindowPosition(100,100);      glutCreateWindow(argv[0]);      init();      glutDisplayFunc(display);      glutKeyboardFunc(keyboard);      glutMainLoop();      return 0;  }

 

调试后截图如下:

捕获.PNG