原著:http://lemonc.me/opengl-win10-vs2015-setting.html
以下內容經修改及增加許多細節
如今科技界已經讓 VR(虛擬實境)、AR(增強現實),3D列印等概念深入人心,其實這些火遍大江南北的概念背後,都與「電腦圖形學」這門學科的有著很大聯繫。但想要入門或學習電腦圖形學方面的程式設計,前期都需要花費一定的時間進行環境配置。圖形學程式設計環境的搭建,即使對於有程式設計經驗的人來說,雖然不難,但也會感到比較繁瑣,而且往往圖形學專案都會涉及到很多工具和庫。而電腦圖形學方面的程式設計,必不可少地會涉及到 OpenGL。
OpenGL的全稱是 OpenGraphics Library ,以下是引用自 OpenGL官方網站 的一段介紹:
OpenGL is the premier environment fordeveloping portable, interactive 2D and 3D graphics applications. Since itsintroduction in 1992, OpenGL has become the industry's most widely used andsupported 2D and 3D graphics application programming interface (API), bringingthousands of applications to a wide variety of computer platforms.
簡單來說,OpenGL就是一個功能強大、支持多個平臺、用於二維和三維圖形的底層圖形庫。
所以,為了讓大家更簡單地接觸 OpenGL程式設計,這篇文章將從零開始介紹搭建一個 OpenGL程式設計環境的過程,並給出背後的一些相關概念。考慮到讓這篇文章能在未來也保持一定的普適性和時效性,便選擇了已逐漸成為主流的 Windows 10 作業系統,以及 Visual Studio Community 2015 + FreeGLUT 2.8.1 + GLEW 2.0.0 的工具組合。
下面將會分別簡單介紹這幾個工具。
Visual Studio Community 2015
微軟為了促進 Windows 10的生態環境,決定將之前售價高昂的 Visual Studio開發工具最大限度地 “免費”提供給單個開發人員、開源專案、科研、教育以及小型專業團隊!從 VS 2013開始便推出了一個全新的「社區版」,也就是 Community版本。Community版本與以前免費的 Express版本相比,相當於集成了多個針對不同平臺的 Express版本,而且具有更多的功能和特性。Community版本的用戶能使用各種優秀強大的外掛程式,但 Express版本的用戶卻無法享用,因此更建議使用 Community版本。
FreeGLUT
GLUT的全稱為 OpenGLUtility Tookit。最初 Mark Kilgard為了使 OpenGL應用程式結構能夠真正獨立於視窗系統而構思了 GLUT庫。但由於 GLUT庫很早就已經不再維護更新,便誕生了與 GLUT庫相容的開源實現版本 FreeGLUT。FreeGLUT庫主要用來創建視窗,初始化 OpenGL的環境,管理使用者滑鼠、鍵盤的輸入,以及讓 OpenGL程式變得簡單和提升可攜性。
GLEW
GLM
接下来将给出在 Windows 平台下,搭建最常用 OpenGL 编程环境的详细过程。
(1)打开网址 https://www.visualstudio.com/downloads/download-visual-studio-vs
(2)选择 Visual Studio 2015,勾选 ISO,点击下载。
(1)打开 vs2015.2.com_chs.iso。
(2)最好选择在默认的安装位置,并勾选自定义,点击下一步。
(3)这里需要勾选上编程语言中的“ Visual C++”,其余根据各自的需求勾选,并点击下一步,直到开始安装。
(4)安装完成。若安装过程中出现“Team Explorer for Visual Studio 2015”的错误,可能是由于多个版本 的 Visual C++ Redistributable 所致。但只需控制面板中对 Visual Stuidio Community 2015 点击“更 改”,并选择修复,即可继续安装直到完成。
(1)打开网址 http://freeglut.sourceforge.net/index.php#download
(2)选择 Freeglut 2.8.1 版本下载。
(3)解压后得到 freeglut-2.8.1 文件,进入 VisualStudio,选择版本 2012,打开解决方案 freeglut.sln。
(4)初次打开 Visual Studio 的话,开发设置选择 Visual C++。
(5)对所有由 Visual Studio 2012创 建的 FreeGLUT 项目,点击“确认”升级 VC++ 编译器和库,以支持 Visual Studio 2015 的编译。
(6)选择 Release 版本,打开“生成”菜单,点击“生成解决方案”,分別對Win32 及 x64 進行編譯。
(7)编译成功后,返回到 freeglut-2.8.1 根目录,将 include 下的 GL 文件夹复制到自訂的文件夾下(例如: D:\Program Files\opengl\build\include)。
(8)返回到 freeglut-2.8.1 目录,把 lib\x86 里面的 freeglut.lib 复制到自訂的文件夾下(例如:D:\Program Files\opengl\build\x86\lib)。
(9)返回到 freeglut-2.8.1 目录,把 lib\x64 里面的 freeglut.lib 复制到自訂的文件夾下(例如:D:\Program Files\opengl\build\x64\lib)。
(10)把 lib\x86 里面的 freeglut.dll 复制到自訂的文件夾下(例如:D:\Program Files\opengl\build\x86\bin)。
(10)把 lib\x64 里面的 freeglut.dll 复制到自訂的文件夾下(例如:D:\Program Files\opengl\build\x64\bin)。
至此,FreeGLUT 库的配置就完成了!
其实添加这类第三方库文件一般有两种方式,一种便是上述提到的将与库相关的 include,lib 和 DLL 文件复制到 VS 的程序目录和系统目录或自訂程序目錄,这样通过默认的路径就能找到所需的文件。而另一种则是将库相关的文件放到项目自建的一个文件夹下,然后通过 VS 配置项目的附加目录,从而找到所需的库文件。这种方式的好处是,当前的项目会更具有可移植性,即使在没配置好第三方库的电脑,也可以直接运行项目程序。然而,从操作简便性的角度上看,第一种更适合当前的学习环境,配置了一次后,接下来新的 OpenGL 项目都无需再进行环境配置。
(1)打开网址 http://glew.sourceforge.net/
(2)选择 2.0.0 版本源代码 ZIP 格式压缩包,对库进行编译(若选择下方针对 Windows 平台已编译好的库文件, 则可以跳过编译阶段。但为了兼容稳定性,推荐下载源代码后再编译得到库文件)。
(3)解压后进入 glew-2.0.0 文件夹。在 build 文件夹中选择 vc10 (vc12作者無法開啟),打开 glew.sln 解决方案。
(4)下面与配置 FreeGLUT 的过程类似。会提示对由更低版本 VS 创建的 GLEW 项目进行升级,点击“确认”升级 VC++ 编译器和库,以支持 VS 2015 的编译。
(5)选择 Release 版本,打开“生成”菜单,点击“生成解决方案”,分別對Win32 及 x64 進行編譯。
(6)编译成功后,返回到 glew-2.0.0 根目录,将 include\GL下的標頭檔整个复制到自訂的文件夾下(例如: D:\Program Files\opengl\build\include\GL),與freeglut的標頭檔一同放在同一個資料夾下。
(7)返回 glew-2.0.0 目录,把 lib\Release\Win32中的glew32.lib 复制到自訂的文件夾下(例如:D:\Program Files\opengl\build\x86\lib),與freeglut的lib檔一同放在同一個資料夾下。
(8)返回 glew-2.0.0 目录,把 lib\Release\x64中的glew32.lib 复制到自訂的文件夾下(例如:D:\Program Files\opengl\build\x64\lib),與freeglut的lib檔一同放在同一個資料夾下。
(9)返回 glew-2.0.0 目录,把 bin\Release\Win32 中的 glew32.dll 复制到自訂的文件夾下(例如: D:\Program Files\opengl\build\x86\bin),與freeglut的dll檔一同放在同一個資料夾下。
(10)返回 glew-2.0.0 目录,把 bin\Release\x64 中的 glew32.dll 复制到自訂的文件夾下(例如: D:\Program Files\opengl\build\x64\bin),與freeglut的dll檔一同放在同一個資料夾下。
至此,GLEW 库的配置就完成了!
至此,GLM库的配置就完成了!
若以上步驟有誤,可考慮直接下載資源:http://download.csdn.net/detail/j0939115399/9908629
選擇電腦(計算機),右键属性>高级系统设置>环境变量>系统变量>Path>編輯>新增x86及x64bin分別所在的路徑,例如:D:\Program Files\opengl\build\x86\bin 及 D:\Program Files\opengl\build\x64\bin 。新增完即可按確認並退出,為了確保後續測試不會有問題,可先重新開機在進行後續配置。
開啟Visual Studio 2015
(1)新建项目,选择即空项目,为项目命名为 Test。
(2)在源文件中单击右键,选择添加新建项。
(3)添加命名为 test.cpp 的 cpp 文件。
(4)点击 视图>其他窗口>属性管理器
(5)接下來即會出現"属性管理器"的窗口,点开工程文件Test,下边会有一个Debug | Win32的文件夹,点开來 後下方會出現有名为"Microsoft.Cpp.Win32.user"的文件,點擊進入
(6)选择 通用属性>VC++目录>包含目录,添加自訂的include目錄路径:
D:\Program Files\opengl\build\include
(7)选择 通用属性>VC++目录>庫目录,添加自訂的庫目錄路径:
D:\Program Files\opengl\build\x86\lib
(8)选择 链接器>输入>附加依赖项,添加文件庫名稱(即庫目錄下的文件名稱):
freeglut.lib
glew32.lib
include目錄路径: D:\Program Files\opengl\build\include
庫目錄路径:D:\Program Files\opengl\build\x64\lib
文件庫名稱:freeglut.lib;glew32.lib
最后,通过编译OpenGL 应用程序以测试环境配置是否成功。
(1)将以下代码添加入 test.cpp 文件中:
#include
#include
void displayFunction()
{
glClear(GL_COLOR_BUFFER_BIT);
glRectf(-0.5, -0.5, 0.5, 0.5);
glColor3f(0, 1, 0);
glFlush();
}
int main(int argc,char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowSize(600, 600);
glutCreateWindow("The first OpenGL Application");
glewExperimental = true;
glewInit();
printf("OpenGL version: (%s)\n",glGetString(GL_VERSION));
glutDisplayFunc(&displayFunction);
glutMainLoop();
return 0;
}
(2)分別選擇 Debug Win32 及 Release x64,並点击“本地 Window 调试器”,生成并运行程序。
若能编译成功,并显示出带有绿色正方形的窗口和输出 OpenGL 版本号,则代表 OpenGL 环境配置完成!