1. 程式人生 > >OpenGL入門(一)freeglut和glew的編譯

OpenGL入門(一)freeglut和glew的編譯

寫在前面

最近對OpenGL程式設計又雙叒產生了濃厚的興趣,決定把學習OpenGL過程中學到的知識都整理到部落格中來,一來方便日後檢視,而來也是為了和諸位大佬共勉。有不當的地方還望諸位批評指正,謝謝。
本系列部落格將使用freeglut3.0.0和glew2.1.0和vs2017,在win10平臺上開發。

關於glut、freeglut、glew

在我們進行OpenGL程式設計的時候,我們需要先建立一個視窗來顯示圖形,還需要從滑鼠、鍵盤獲取事件。但OpenGL僅僅是針對圖形化的一個介面,它是跨平臺的,至於如何建立視窗和監聽IO由平臺自帶庫實現,像windows可以用windows.h裡面的方法建立視窗,但使用自帶庫建立視窗一般都特別麻煩。於是圖形學大神Mark Kilgard坐不住了,一聲炮響為我們送來了glut。glut(OpenGL實用工具庫)為我們提供了一個統一的介面,方便我們進行視窗管理,IO監聽,還包括一些三維物體繪製函式,用來繪製特定的更為複雜的物體,像球體、圓面體、茶壺等。而glut是閉源的,從2000年之後沒有更新,算是gg了。freeglut是glut的一個開源版本,一直有專門的人員維護和更新。
再說glew。glew是一個跨平臺的C++擴充套件庫,它的出現是為了方便的管理平臺與opengl版本不匹配,以及方便的解決不同顯示卡特有的硬體介面支援。window目前只支援OpenGL1.1的涵數,但 OpenGL現在都發展到2.0以上了,要使用這些OpenGL的高階特性,就必須下載最新的擴充套件,另外,不同的顯示卡公司,也會發布一些只有自家顯示卡才支 持的擴充套件函式,你要想用這數涵數,不得不去尋找最新的glext.h,有了GLEW擴充套件庫,你就再也不用為找不到函式的介面而煩惱,因為GLEW能自動識 別你的平臺所支援的全部OpenGL高階擴充套件涵數。也就是說,只要包含一個glew.h標頭檔案,你就能使用gl,glu,glext,wgl,glx的全 部函式。GLEW支援目前流行的各種作業系統(including Windows, Linux, Mac OS X, FreeBSD, Irix, and Solaris)。

編譯freeglut

在SourceForge上freeglut3的原始碼,我們需要下下來編譯一次才可以使用。在這裡我把自己編譯好的檔案上傳到了csdn,大家可以直接下下來用:https://download.csdn.net/download/renkai0406/10367793 或者 https://pan.baidu.com/s/1n2ynggb9pBhBtN4GQbECYw
那如何編譯freeglut呢?首先點開https://sourceforge.net/projects/freeglut/?source=typ_redirect 然後點選下載,得到原始碼。開啟CMake GUI,在source code中選擇freeglut-3.0.0(而不是freeglut-3.0.0的子目錄src),build binaries 中選擇你要生成的專案地址。之後點選configure選擇編譯平臺(vs2017),確定,等待配置完成。點選generate生成最終檔案,再點選Open Project用vs開啟最終生成的專案:
這裡寫圖片描述


在vs中選擇f配置方案為release,平臺為win32,右鍵專案->聲稱解決方案。至此,編譯完成。然後,把freeglut-3.0.0裡面的include下的檔案,CMake生成的專案(此處為freeglut-VisualStudio)裡面的lib->release->freeglut.lib、freeglut_static.lib複製到專門的資料夾下(本人放到F:\OpenGL\freeglut3.0.0下方便以後使用),freeglut-VisualStudio裡面的bin->release->freeglut.dll複製到系統盤->Windows->System32下。

glew

結語

至此,我們就得到了freeglut和glew的庫檔案,之後我們在專案中引入就可以了。接著我們研究如何使用openGL畫一個簡單的圖形:
OpenGL入門(二)我的第一個圖形