OpenGL环境搭建
GLFW
GLFW是一個OpenGL的C語言庫,它提供了渲染物體所需要的最低限度的接口,它允許用戶創建OpenGL上下文,定義窗口參數以及用戶的輸入。
構建GLFW
GLFW可以從它的官方網站下載,目前官網上有Visual Studio2015及之前版本的預編譯二進制版本和相應的頭文件,我這里是下載了源代碼自己進行編譯的。(推薦下載32版本,64版本可能會出現很多問題)
自己編譯可以保證生成的庫是兼容你的操作系統以及CPU的,如果直接下載預編譯的二進制文件會出現各種兼容性的問題。
CMake
CMake是一個工程文件生成工具。用戶可以使用預定義好的CMake腳本,根據自己的選擇(像是Visual Studio, Code::Blocks, Eclipse)生成不同IDE的工程文件。這允許我們從GLFW源碼里創建一個Visual Studio 2017工程文件,之后進行編譯。首先,我們需要從這里下載安裝CMake。我選擇的是Win32安裝程序。
當我們的CMake安裝完成后,可以從命令行或者GUI進入程序,我這里選擇GUI。CMake需要一個源代碼目錄和一個存放編譯結果的目標文件目錄,源代碼目錄是我們選擇GLFW的源代碼根目錄,編譯目錄我們可以自己新建。??
在設置完代碼目錄和目標根目錄后,點擊Configure(設置)按鈕,然后讓CMake讀取設置和源代碼,由于我使用的是Visual Studio 2017 ,最終我選擇VS2017,CMake會顯示可選編譯選項用來配置最終生成的庫。這里使用默認設置,并在此點擊
Configure(設置)按鈕保存設置。最后點擊Generate(生成按鈕),生成文件夾會在你設置的Bulid目錄下面。
編譯
在Build文件夾里面選擇GLFW.sln文件,用VS2017打開,然后自己手動編譯一下。
編譯完成后,我們需要讓IDE知道庫和頭文件的位置
這里我創建了兩個文件夾分別是:lib文件夾和include文件夾。將源代碼下的include/GLFW文件夾放到新建的include文件夾下,編譯出來的glfw3.lib放在新建的lib文件夾下。
? ? ? ? ?
創建工程
打開,VS2017,創建一個新的C++項目,之后就開始創建第一個OpenGL程序吧!
鏈接
為了讓程序使用GLFW,我們需要把GLFW庫鏈接進工程中,這可以通過鏈接器設置里指定我們要使用glfw3.lib來完成,但是由于我們將第三方庫放在另外一個目錄中,我們的工程還不知道在哪里尋找這個文件 。于是我們需要將我們放第三方庫的目錄添加設置。
要添加這些目錄,我們首先進入工程屬性,在解決方案窗口里右鍵項目,然后選擇VC++ 目錄(如下圖)。
?
現在VS可以找到所需的所有文件了,最后需要在鏈接器選項卡里的輸入選項卡里添加glfw3.lib這個文件:
?
要鏈接一個庫我們必須告訴鏈接器它的文件名,庫名字是glfw.lib。我們把它加到附加依賴項中。這樣GLFW在編譯的時候就會被鏈接進來了。
Windows上的OpenGL庫
opengl32.lib已經包含在Microsoft SDK 里,它在Visual Studio 安裝的時候已經默認安裝了,由于我們這里用的是VS編輯器,并且是在Windows操作系統上,我們只需要將opengl32.lib添加進鏈接器設置里就OK了。
GLAD
到這里還沒有結束,因為OpenGL只是一個標準/規范,具體的實現是由驅動開發商針對特定顯卡實現的。由于OpenGL驅動版本很多,所以大多數函數的位置都沒有辦法保證在編譯的時候確定下來,需要在運行查詢。
開發者需要在運行時獲取函數地址并將其保存在一個函數指針中,方便以后使用。在Windows中是這樣的:
?
1 // 定義函數原型 2 typedef void (*GL_GENBUFFERS) (GLsizei, GLuint*); 3 // 找到正確的函數并賦值給函數指針 4 GL_GENBUFFERS glGenBuffers = (GL_GENBUFFERS)wglGetProcAddress("glGenBuffers"); 5 // 現在函數可以被正常調用了 6 GLuint buffer; 7 glGenBuffers(1, &buffer);我們可以看到代碼是比較復雜的,如果用的函數多了,復雜度就更多了。幸運的是,有些庫能簡化這個過程,其中GLAD是目前為止最新的,也是最流行的庫。
?OpenGL版本查看
工具地址:鏈接: https://pan.baidu.com/s/1i5koKBz 密碼: urga
我們可以通過這個軟件來查看自己電腦的OpenGL版本。
配置GLAD
GLAD是一個開源庫,他能解決我們上面提到的這個復雜問題。GLAD的配置與大多數開源庫有些不同,GLAD使用了一個在線服務。將語言設置為C/C++。在API選項中,選擇3.3以上的OpenGL(gl)版本,之后將模式(Profile)設置為Core,并且保證生成加載器(Generate a loader)的選項是選中的。現在可以先(暫時)忽略拓展(Extensions)中的內容。都選擇完之后,點擊生成(Generate)按鈕來生成庫文件。
? GLAD提供給一個Zip壓縮文件,包含兩個頭文件目錄,和一個glad.c文件。將兩個頭文件目錄復制到我們剛才新建的include目錄中,并且把glad.c文件添加到工程中。
然后就可以將一下指令加入到頭文件頂部了:
#include <glad/glad.h>最后點擊編譯,應該就不會出現任何錯誤了。現在我們OpenGL初步的環境已經搭建完成了。
?
?附加鏈接
- GLFW:Window Guide:GLFW官方配置GLFW窗口指南。
- Building application:提供了很多編譯或鏈接相關的信息和各種錯誤的解決方案。
- GLFW with Code::Blocks:使用COde::Blocks IDE 編譯GLFW。
- Running CMake:簡要介紹如何在Window和Linux上使用CMake。
?
?
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?
?
轉載于:https://www.cnblogs.com/huangzhenxiong/p/7484935.html
總結
以上是生活随笔為你收集整理的OpenGL环境搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux之内存描述符mm_struct
- 下一篇: 实现全屏轮播,并且轮播div中的文字盒子