跟我一起從零基礎開始學OpenGL-01

爲什麼想學OpenGL,厭煩了業務代碼,厭煩了學習使用各種框架,厭煩了碼蟻一樣的生活,房租,水電,面試,工作……

人總是要有理想的,以前學算法,學組原,也是人云亦云,必須要學這個。後面學前端也是,從HTML到JS到React到放棄。

我本科是物理專業的,想想曾經只出現在書本上的拉格朗日力學,萬有引力,波動力學,分子熱運動,能可視化的體現在電腦桌面上,也是對自己專業的一個交代吧,想當初大一立下的豪情壯志,4年內學完MAYA和3DMAX,UNITY,結果借的書一次沒翻開過。想想最近遊戲界出現的UE5,光線追蹤,聽到這些詞就足以讓人興奮。

不積跬步,無以至千里。餬口要有,夢想也要有。(寫這篇文章的我正在圖書館,我覺得我應該去當個圖書管理員)

本人能力有限,也是0基礎開始學OpenGL,學習能力強的建議自己去尋找學習資源,效率會更高

https://learnopengl-cn.github.io/

視頻可以去B站搜索閆令琪的視頻

書籍推薦《計算機圖形學》《計算機圖形學編程 使用OpenGl和C++》

 

不廢話了,先從環境搭建開始吧。

1.下載glfw

https://www.glfw.org/download.html

下載是一個壓縮包,解壓到本地,如下:(是不是太囉嗦了點)

2.下載Cmake

https://cmake.org/download/

同樣解壓到本地,然後打開cmake-gui.exe

 

 

source code ,填寫我們之前解壓的glfw所在路徑

下面的build,當然也是在glfw路徑下新建一個build文件夾

 

點這個這個gui頁面的configure

我本地已經下載好了VS,我也不寫了,隨便搜了一下別人的安裝教程https://www.cnblogs.com/HGNET/p/12165001.html

然後點擊finish,如下

等一會

然後再點擊configure按鈕,然後點擊generate

這時我們的buidl文件下會生成一堆文件,如下

然後點擊這個glfw.sln文件

打開後選擇生成解決方案

3.下載GLAD

這裏我們不知道這個gl版本是多少,發現我之前安裝的AIDA64能看

http://www.aida64.com.cn/html/downloads.html

回到我們剛纔的GLAD頁面

選擇generate

 

下載glad.zip,並解壓

4.配置項目

前面一堆操作,我們得到了這些頭文件和庫文件,也就是.h和.lib,還有.c結尾的文件

 

現在回到VS,我們創建一個空白的解決方案

 

 點擊創建後,打開我們的MyProject文件夾,長這樣

現在我們創建一個Libraries文件夾,像這樣

打開Libraries,創建include和lib文件夾,用來存放我們的.h文件和.lib文件,話說我這種C++零基礎的要不要去買一本C++ prime

把上面提到的文件都複製過來,如下

 

然後開始配置我們的VS

首先新建一個項目

選擇屬性,如下

在包含目錄下,添加我們的include文件路徑..\Libraries\include,如下

庫目錄也相同../Libraries/lib,如下

還有我們的輸入

然後點擊確定

新建一個hello world文件

裏面放兩行代碼

#include <glad/glad.h>
#include <GLFW/glfw3.h>

執行,出錯了

VS掌握的不好,先按照教程新建一個空白項目https://docs.microsoft.com/zh-cn/cpp/build/vscpp-step-1-create?view=vs-2019

刪去其它文件,只保留我們的庫文件夾,然後創建一個新項目

刪去已有的代碼

 

按F5執行報錯了,感覺自己宛如智障,

摸索了一個小時,覺得還是自己對include理解不夠

比如我上面寫的#include <glad/glad.h>,會去我設置的包含目錄E:\learn\OpenGL\MyProject\Libraries\include去找,因爲我是把所有的文件都放入include文件夾中的,所以應該改成 #include <glad.h>

現在給出正確的做法,由於複製learnopengl-cn網站上的源碼,比如這樣

這個include 文件夾下是有glad文件夾,glad文件夾下又又這個glad.h文件

所以統一按照它給的方式。

還是前面所說的幾個文件。給出文件目錄結構,各位可以先按我的文件結構弄好(要不直接複製到ide的lib文件夾下吧)

點擊去glad如下,

其它文件夾如下

 

然後打開VS,創建新項目

打開VS頁面如下

文件路徑如下

然後就是修改我們的屬性

 

然後新建一個main.cpp文件

複製下面的代碼

#include <glad/glad.h>
#include <GLFW/glfw3.h>
int main()
{
    glfwInit();
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
    //glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);

    return 0;
}

像這樣

先按F5,看看效果

改成x64,再試下

先把之前提到的glad.c複製進來,再執行看看效果,複製到和我們的main.cpp同一路徑下

執行後仍舊報錯,看來還是得添加源文件

結果如下

再次執行

不知道搭建成功沒有,頂不住了,先到這裏吧

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