LearnOpenGL-P4 生成彩色的矩形

0 上一章我們講到如何生成不同顏色的矩形,然后延伸了一些內(nèi)容生成了一個(gè)顏色會(huì)隨時(shí)間正弦變化的純色矩形。本章我們將主要做兩件事:
(1)將著色器程序封裝成一個(gè)類。
(2)通過在vertices添加矩形四個(gè)頂點(diǎn)對(duì)應(yīng)的顏色數(shù)據(jù)生成一個(gè)彩色的矩形。?

1 將著色器程序封裝成一個(gè)類
1.1 新建一個(gè)Shader頭文件和cpp文件。將頂點(diǎn)著色器源碼文件路徑和片段著色器源碼文件路徑作為構(gòu)造函數(shù)的參數(shù)傳入到Shader中。

1.2 在Shader的構(gòu)造函數(shù)中讀取著色器源碼文件內(nèi)容,并將其編譯。最后將其鏈接到著色器程序中。

1.3 將之前main函數(shù)里的頂點(diǎn)著色器和片段著色器編譯實(shí)現(xiàn)細(xì)節(jié)移到編譯接口中。

1.4 將main函數(shù)里的著色器程序鏈接實(shí)現(xiàn)細(xì)節(jié)移到鏈接函數(shù)中。

1.5 設(shè)置著色器激活函數(shù)和刪除函數(shù)。

1.6 設(shè)置各種數(shù)據(jù)類型的著色器uniform參數(shù)的接口。

1.7 將頂點(diǎn)著色器源碼和片段著色器源碼分別存放在兩個(gè)不同的GLSL后綴的文本文件中。


1.8 在main函數(shù)中將之前的shader流程都刪了,改為直接使用Shader對(duì)象的方式。

1.9 在渲染循環(huán)中,每次繪制之前,使用Shader對(duì)象激活著色器。

1.10 渲染完畢退出渲染循環(huán)后,需刪除著色器程序分配的資源。

?

2. 封裝完著色器程序之后,我們?cè)賹?shí)現(xiàn)一個(gè)花里胡哨的功能,即通過給vertices數(shù)組中添加4個(gè)矩形角點(diǎn)對(duì)應(yīng)的顏色信息,來生成一個(gè)彩色的矩形。
2.1 在vertices中添加顏色信息。

2.2 分別解釋vertices數(shù)組中左半部分?jǐn)?shù)據(jù)是角點(diǎn)坐標(biāo)信息,右半部分?jǐn)?shù)據(jù)是角點(diǎn)顏色信息。

2.3 編譯并運(yùn)行程序,得到一個(gè)彩色的三角形。(設(shè)置了四個(gè)頂點(diǎn)的顏色,然后OpenGL在光柵化時(shí)會(huì)根據(jù)像素位置對(duì)顏色進(jìn)行插值,才得到的這幅彩色的圖象)


