OpenGL超級寶典6 學習環境配置

好久沒有寫博文了,最近覺得圖形學方面的知識非常缺乏,於是有了藉由《OpenGL超級寶典》第6版的學習來填補這方面空白的想法。目前已經看到第四章,打算自己動手重現一下書中的例子,加深一下印象。在環境搭建方面,參考了一些文章,也自己動手實踐了一下。以下是環境搭建的步驟:


一、下載資源


1. 下載隨書源碼

原書提供的地址:http://www.openglsuperbible.com,需要翻牆。所以我把自己下載到的資源放在了這裏:http://download.csdn.net/detail/zhouworld16/9480166


2. 下載freeglut和glew

可以在sourceforge上下載,地址是https://sourceforge.net,搜索並下載freeglut和glew。我下載到的版本是freeglut-3.0.0,glew-1.13.0。


3. 下載CMake

在前一步下載的freeglut的壓縮包解壓後,並沒有我們想要的VS工程,所以還需要下載CMake來得到VS工程。官方地址https://cmake.org/download/,裏面有很多版本可供選擇,我下載的是cmake-3.5.1-win32-x86.msi,直接安裝。


二、獲取和複製需要的文件


1. 通過CMake獲取freeglut的VS工程

安裝好CMake以後,打開cmake-gui,如圖所示,選擇freeglut解壓縮後的文件夾,以及生成後的工程要放置的位置,點擊configure,在彈出的窗口中選擇你的VS版本。



完成後以上操作後,得到如圖所示的界面,根據紅色界面下的提示,再次點擊Configure,之後再點擊Generate,即可在上一界面選定的文件夾位置得到freeglut的VS工程。




2. 複製freeglut和glew相關文件

打開上一步得到的freeglut工程,選擇Release模式進行編譯,即可得到freeglut.lib和freeglut.dll文件。現在我們就可以進行freeglut和glew相關文件的複製工作了。


首先是.h頭文件:打開VS安裝目錄,找到VC\include文件夾,新建一個以GL爲名的文件夾。到freeglut壓縮包解壓後的文件夾中,找到include\GL文件夾,將此文件夾中的所有4個.h文件全部複製到VC\include\GL文件夾中。同理,打開glew壓縮包解壓後得到的文件夾,將include\GL文件夾中的全部3個.h文件複製到VC\include\GL文件夾中。


接下來是.lib靜態庫文件:在我們上一步編譯後的freeglut工程中,找到lib\Release文件夾,將其中的freeglut.lib文件複製到VS安裝目錄的VC\lib文件夾中。打開glew壓縮包解壓後得到的文件夾,將lib\Release\Win32文件夾中的glew32.lib和glew32s.lib文件也複製到VS安裝目錄下的VC\lib文件夾中。


最後,是.dll動態鏈接庫文件:同樣在我們上一步編譯後的freeglut工程中,找到bin\Release文件夾,複製freeglut.dll文件到C:\\Windows\System32中,如果是64位系統,就複製到C:\\Windows\SysWOW64文件夾中。打開glew壓縮包解壓後得到的文件夾,將bin\Release\Win32文件夾中的glew32.dll文件也複製到上述文件夾中。


三、建立新工程,搭建書中源碼環境


先用VS2013新建一個Win32工程。解壓隨書源碼,將sb6code-master\include\GL文件夾和sb6code-master\extern\glfw-2.7.6\include\GL文件夾內的.h文件複製到VC\include\GL文件夾中,再將sb6code-master\lib中的3個.lib文件複製到VC\lib文件夾中。最後,將sb6code-master\include中的sb6.h及sb6ext.h複製到新建的項目文件夾下,並在項目中導入這兩個文件,完成配置。




四、編寫代碼及運行

新建一個.cpp文件,以書中的第一個程序爲例進行試運行。

#include "sb6.h"
// Derive my_application from sb6::application
class my_application : public sb6::application
{
public:
	// Our rendering function
	void render(double currentTime)
	{
		// Simply clear the window with red
		static const GLfloat red[] = { 1.0f, 0.0f, 0.0f, 1.0f };
		glClearBufferfv(GL_COLOR, 0, red);
	} 
};
// Our one and only instance of DECLARE_MAIN
DECLARE_MAIN(my_application);



運行結果如上圖,證明配置成功。在書中隨後幾章的程序中,可能要用到隨書源碼中的其他文件,如vmath.h,只要照sb6.h一樣複製到工程文件夾下,再導入到工程中即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章