之前打算具体研究下图形学,本来打算从 Dx 入手的,不过偶然从自己那堆书中发现,以前都买了两大本厚实的 OpenGL 相关书籍了,想想就这么放着也有点太可惜,反正底层算法应该都是差不多的,于是决定还是从 OpenGL 入手吧。

我这儿的配置,主要是说 VS2015+freeglut。或许有人会疑惑这是啥?glut 就是提供了 OpenGL 一个跨平台的界面解决方案 —— 应该可以这样说吧。OpenGL 核心就 GL (图形库) 和 GLU (实用工具库),它们两个都可以说是平台无关,因此也不提供界面。安装 VS 的时候,一般来说都已经自带了 GL、GLU 两个核心的东西了,具体路径可以在

C:\Program Files (x86)\Windows Kits\8.1\Include\um\gl

类似的目录找到。
所以配置其实就是为 OpenGL 的开发加个界面而已(当然其实这也是开始最重要的)。

其实 OpenGL 的配置还是相当简单的,只是大概会对此前从未弄过的的人,比较麻烦点而已。另外对于界面创建库,我看见很多地方都是在用 glut(比如现在自己手上那两本书,好歹也是 14 年版的)。那东西都是 2000 年的了,最新的是 3.7 的 beta 版本,不开源,而且都十几年没更新了。

想想都感觉有点震惊,现在使用起来似乎都没啥问题的样子?不过对于心理不大好受就是了,总觉得有点疙瘩。

其实它早就有了替代版本了,即 freeglut,这个库提供了与 glut 差不多一样的接口和功能,而且版本一直在更新,最新的一版应该是去年三月份,即 2015 年 3 月 7 日的 3.0 版本。这个版本默认并没有像以前一样,集成了 VS 相关的解决方案,只有 Cmake 相关配置文件。所以这就得靠自己编译了。首先下载一个 Cmake 程序,CMake 地址。如果不想安装的话,可以只下载 Zip 的绿色版本,解压即用。我就是下载的绿色版本的。

解压出来后,运行里边 Bin/cmake-gui.exe(或者安装版就更简单了)。选定好 freeglut 解压出来的根目录,以及一个自定义的输出目录之后,点击下方的 “Configure” 按钮。这时会出现项目版本选择,如图所示:

示例

这儿我选择了默认 VS2015 的 32 位项目配置,点击 Finish。
运行一会儿,界面就会出现红色配置选项,如图所示:

示例

去掉打中间两个选项(静态库和移动设备),然后点击 “Generate”。

这时候,输出目录就会出现许多 VS 相关的工程,直接双击 “INSTALL.vcxproj” 打开 VS,右键点击 "INSTALL" 项目,将其设置为启动项目,编译模式选择为 “Release”,最后 Ctrl+F5。等待编译完成,大概十几秒的时间就好了。回到目录,开始复制编译好的文件。

复制 bin 文件夹下的 freeglut.dll 到系统的 C:\Windows\System32 中,
复制 lib 文件夹下的 freeglut.lib 至 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib
复制 freeglut-3.0.0 原本文解压文件夹下的 freeglut-3.0.0\include\GL 中的文件至 C:\Program Files (x86)\Windows Kits\8.1\Include\um\gl
(注:其实这这后面这两个目录并不是一定的,只要确保你的 VS 项目设置中将这些目录包含了就可以)

然后,配置就算完成了。
就是这样。

接下来新建一个工程测试下吧。随便新建一个控制台空项目,注意是空项目,不要选择 VS 提供的默认设置。
然后新建一个 Main 文件,简单地填入如下代码:

#include <GL/glut.h>
void Display(void)
{
}
void main(int argc, char *argv[])
{
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
	glutInitWindowPosition(100, 100);
	glutInitWindowSize(500, 500);
	glutCreateWindow("Hello World!");
	glutDisplayFunc(Display);
	glutMainLoop();
}

这只是初始化最简单的代码,如果屏幕上出现了一个窗口,如图所示:

示例

那就说明成功了!

就是这样。