由于手头笔记本只支持到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:http://glew.sourceforge.net/ 找到对应本机OpenGL版本的glew

  2. gluw:https://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip  opengl官网上有提供,点击链接直接下载

  3. VS2017:https://visualstudio.microsoft.com/zh-hans/vs/


 

配置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 <GL/glew.h>  
#include <GL/glut.h>  
#include <stdlib.h>  
  
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