OpenGL+vs+glew
来源:互联网 发布:js array map index 编辑:程序博客网 时间:2024/05/17 15:36
写给想要学习opengl的同学们。
刚开始学习opengl的时候,对于整个环境的搭建以及一些概念不太清晰,网上的资料又比较凌乱,因此在此总结一下,方便大家。
首先,是有一个windows系统,我用的是win8,不过相信其他系统应该还是很接近的。
1. 安装vs2012,这个什么用处就不必多说了吧。安装vs2012会自动安装windows sdk 8.0在C:\Program Files (x86)\Windows Kits\8.0
2. 去http://sourceforge.net/projects/freeglut/下载最新的freeglut。当前版本2.8.1。
freeglut的全称是free OpenGL utility toolkit,其实他和opengl本身并没有什么关系,他的作用是方便程序员处理例如窗口,键盘事件,鼠标事件之类的东西。
因为他是跨平台的,所以假如一个opengl程序是用glut开发的话,那在windows或者linux下是不需要进行任何的修改的。
那为什么是freeglut而不是glut那?其实刚开始他就叫glut,不过老版本已经停止更新很久了,所以后来别人又建了个新的项目叫freeglut,API都是兼容的。
3. 去http://sourceforge.net/projects/glew/下载最新的glew。当前版本1.10.0。
glew的全称是OpenGL Extension Wrangler Library,他的作用是什么那?
在此之前先要介绍下opengl在windows下的情况。万恶的微软为了推自己的dirext3d,所以默认对opengl的支持是很有限的,从opengl1.1开始就再也没有升级了,差不多都十多年了。
所以现在windows下对于opengl的支持,全靠显卡厂商。正因为此,更新到最新的显卡驱动也是非常必须的。对于不一样的显卡,支持opengl的版本也是不一样的,具体需要上各家网站查看。譬如我的nvidia 9600GT,就只支持opengl3.x,要支持4.x就必须要换新卡了。
虽然安装完驱动后就支持最新的opengl了,但是微软并没有提供直接的opengl API,导致使用起来比较繁琐。
于是,glew得用处就来了,他其实就是对这些繁琐的事情进行的封装,使得程序员可以很方便的调用glxxx的opengl函数。
东西都介绍好了,下面就开始实际操作了。
freeglut下载下来的是源代码,需要自己编译。
打开freeglut-2.8.1\VisualStudio\2012\freeglut.sln,选择release然后build,会在freeglut-2.8.1\lib\x86下生成freeglut.lib和freeglut.dll。
对于freeglut,我们需要3个东西:
头文件在freeglut-2.8.1\include\GL下,我们需要把这些文件拷贝到C:\Program Files (x86)\Windows Kits\8.0\Include\um\gl下
静态库文件freeglut.lib,拷贝到C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x86下
动态库文件freeglut.dll,拷贝到C:\Windows\SysWOW64下
对于glew,有win下编译好的版本glew-1.10.0-win32,直接下这个就好
然后和freeglut一样,
头文件在glew-1.10.0\include\GL下,拷贝到C:\Program Files (x86)\Windows Kits\8.0\Include\um\gl下
静态库文件glew-1.10.0\lib\Release\Win32\glew32.lib,拷贝到C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x86下
动态库文件glew-1.10.0\bin\Release\Win32\glew32.dll,拷贝到C:\Windows\SysWOW64下
至此,环境就搭建好了,下面我们写一个简单的应用测试下即可
- #include "stdafx.h"
- #include <GL/glew.h>
- #include <GL/glut.h>
- #pragma comment (lib, "glew32.lib")
- void init()
- {
- glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
- }
- void display()
- {
- glClear(GL_COLOR_BUFFER_BIT);
- }
- int _tmain(int argc, char* argv[])
- {
- glutInit(&argc, argv);
- glutInitWindowPosition(100, 100);
- glutInitWindowSize(800, 480);
- glutInitDisplayMode(GLUT_RGBA);
- glutCreateWindow("opengl");
- glewInit();
- init();
- glutDisplayFunc(display);
- glutMainLoop();
- return 0;
- }
下面就可以尽情享受opengl带来的快乐了~
- OpenGL+vs+glew
- VS 2008 OpenGL+glfw+glew+glm 配置
- OpenGL之GLew初始化
- OpenGL: glew库
- OpenGL之GLEW安装
- OpenGL之GLEW安装
- vs中GLEW配置
- [OpenGL] 配置freeglut和glew
- vs2010 OpenGL+glfw+glew+glm
- [OpenGL系列] VS2015+FreeGLUT+GLEW
- VS2015配置OpenGL(glfw,glew)
- OpenGL SDK glew(OpenGL Extension Wrangler Library )
- openGL环境问题 VS error C1083: 无法打开包括文件:“gl\glew.h”: No such file or directory
- OpenGL的glew的扩展库
- 使用glew和glfw进行opengl编程
- OpenGL,glut,glew,glfw,mesa等
- 配置OpenGL——freeglut+glew
- OpenGL-vs2012-glfw-glew 测试环境搭建
- eclipse设置和优化
- 嵌入式系统下console,tty,串口的关系
- LSTM RNN 理论
- 收尾决胜武器:软文常用的9个收尾方法
- Android双向滑动菜单完全解析,教你如何一分钟实现双向滑动特效
- OpenGL+vs+glew
- PB之——编码规范
- “责任”也是一种竞争力:《穹顶之下》与美丽中国
- 看了本文你还不懂傅里叶变换,那就来掐死我吧
- Linux内核启动过程
- Ubuntu10.10下不能make menuconfig问题解决
- awk截取字符串
- 100多道经典的JAVA面试题及答案解析
- 学习卡尔曼滤波,第一天