由于手头笔记本只支持到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
下载:
glew:http://glew.sourceforge.net/ 找到对应本机OpenGL版本的glew
gluw:https://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip opengl官网上有提供,点击链接直接下载
VS2017:https://visualstudio.microsoft.com/zh-hans/vs/
配置glew:
拷贝glew32.dll至system32文件夹下
拷贝glew32.lib至VC目录下lib文件夹。我的VS目录地址:D:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\lib\x86
拷贝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
创建控制台项目,调出VS的资源视图,项目上右击进入属性,链接器-输入-附加依赖项:新加入glew32.lib
配置glut:
把.h文件放到VC的include路径下的GL文件夹下
glut.lib和glut32.lib放到VC的lib文件夹下
glut.dll,glut32.dll,放到系统盘下\WINDOWS\system32
完成后,新建控制台项目,复制进示例源码到.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; }
调试后截图如下:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。