win8+sdk8+vs2012+freeglut+glew开发opengl

Posted hjlweilong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了win8+sdk8+vs2012+freeglut+glew开发opengl相关的知识,希望对你有一定的参考价值。

写给想要学习opengl的同学们。

刚开始学习opengl的时候,对于整个环境的搭建以及一些概念不太清晰,网上的资料又比较凌乱,因此在此总结一下,方便大家。

首先,是有一个windows系统,我用的是win8,不过相信其他系统应该还是很接近的。

1. 安装windows kit 8.0,安装完成后会出现在C:\Program Files (x86)\Windows Kits\8.0下。

其实这部不是必须的,因为默认的windows8就自带了一些老版本的sdk的内容,里面就有我们编译opengl所需要的头文件和库。例如C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A。

2. 安装vs2012,这个什么用处就不必多说了吧。

3. 去http://sourceforge.net/projects/freeglut/下载最新的freeglut。当前版本2.8.1。

freeglut的全称是free OpenGL utility toolkit,其实他和opengl本身并没有什么关系,他的作用是方便程序员处理例如窗口,键盘事件,鼠标事件之类的东西。

因为他是跨平台的,所以假如一个opengl程序是用glut开发的话,那在windows或者linux下是不需要进行任何的修改的。

那为什么是freeglut而不是glut那?其实刚开始他就叫glut,不过老版本已经停止更新很久了,所以后来别人又建了个新的项目叫freeglut,API都是兼容的。

4. 去http://sourceforge.net/projects/glew/下载最新的glew。当前版本1.10.0。

glew的全称是OpenGL Extension Wrangler Library,他的作用是什么那?

在此之前先要介绍下opengl在windows下的情况。万恶的微软为了推自己的dirext3d,所以默认对opengl的支持是很有限的,从opengl1.1开始就再也没有升级了,差不多都十多年了。

所以现在windows下对于opengl的支持,全靠显卡厂商。正因为此,更新到最新的显卡驱动也是非常必须的。对于不一样的显卡,支持opengl的版本也是不一样的,具体需要上各家网站查看。譬如我的GTX9600,就只支持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 <windows.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带来的快乐了~ 

以上是关于win8+sdk8+vs2012+freeglut+glew开发opengl的主要内容,如果未能解决你的问题,请参考以下文章

Win10 VS2015 OpenGL + freeglut + glew + glm 环境配置

OpenGL环境配置 win10,vs2015,glew,freeglut, glm

对于glut和freeglut的一点比较和在VS2013上的配置问题

VS 2012 中的分析

Win8 系统下 用VS2012 + WDK8.0 编译驱动程序filedisk-17 错误[之前是好的/系统重装后就编译不通过]

OpenCASCADE 编译