OpenGL知識入門學習(一)

2021-10-05 16:56:57 字數 2132 閱讀 1068

#opengl的簡介和常見的相關術語#

作為一名電子類專業的應屆畢業生,用**替換了電烙鐵,用各種ide編輯器替換了各種電路設計與**軟體。因工作需要踏足了計算機圖形學,接觸了opengl程式設計知識。本人在校期間雖然也接觸過程式設計,學過c和c++,但在實驗室主要還是做的stm32微控制器的程式設計工作和數字電源的研究方向(對沒錯,我是被全國電子設計競賽逼上這一方向的)。

說實話,我覺得我的程式設計能力有待提高,但是我的學習能力是毋庸置疑的(每個人只要肯慎獨,狠下心來學習某乙個東西都是有巨大學習潛力的),計算機圖形學是我以前沒接觸過的東西,opengl也是我在面試時第一次聽到這個東西,我是這樣想的,反正以後打算走這條路了,就好好學下去,好好幹下去。

之前是打算在筆記本上做學習筆記的,後來覺得這樣學習進度太慢,就在書上注釋形成閱讀札記即可,仔細想想之後覺得現在的程式猿、攻城獅都喜歡在部落格上記錄學習的內容,而且到時候遇到問題回溯學習過程也比較方便,當然更重要的能記錄我自己在程式猿道路上的學習過程、心路、想法、思考,於是有了這一段文字。

希望我能和大家一起進步,早日實現用**改變世界,贏取白富美,走向人生巔峰的巨集偉目標!!!

本人在學習opengl程式設計時使用的學習資源有如下:

專業參考書籍是《opengl程式設計指南(原書第7版)》。這本書是該行業委員會編寫的書,被譽為經典的opengl紅寶書,反正很牛批的一本書。現在好像買不到出版社出版的正版翻譯過的書了,反正但時我在網上找了好久沒找到,但是**上有二手的賣,我入手了一本質量還可以。之前搜尋的時候好像有一本最新的程式設計指南出版了,封面好像是黑色的,但我抱著保守的態度沒去買(當然也貴哈哈,差不多100塊錢一本)。另外說明這本書有電子版的,但我看書不大喜歡電子版,感覺電子的過目即忘,沒有紙質的有感覺,每個人的習慣不同吧。

ide平台剛學的時候使用得是微軟的visual studio2019,後續應該會用linux。

opengl全稱是open graphics library(開放式圖形庫)。

opengl實質是圖形硬體的一種軟體介面。是一種用於渲染3d圖形的應用程式程式設計介面,沒錯,你可以把它狹隘的想象為某一種底層硬體的api。

那麼什麼又是圖形硬體呢?顧名思義肯定是專門用來處理圖形影象的一塊硬體,看到這個,想到最多的就應該是gpu(graphics processing unit:圖形處理器)。關於gpu與cpu的前世今生我們不做討論了,有興趣的可以網上搜尋一下。但其實提到gpu的話就應該提一下一家公司—景嘉微電子,國內唯一一家將gpu產品化並且應用效能還不錯的國產化gpu公司。希望國產化晶元能夠崛起!!

opengl這個api包含700多個函式,但是:

其沒有包含用於執行視窗任務和獲取使用者之類的函式。

這點的意思應該都明白。

其沒有提供描述3d物體的具體函式。

這點就是說沒有具體模型的函式提供。比如你要實現三維立體的小車,opengl沒有可直接呼叫的函式模型來直接實現這個車,只能自己通過編寫opengl程式,通過呼叫基本幾何單元來構造這個車的函式模型。opengl工具庫(glu)提供建模功能。

opengl可以在計算機上建立乙個具體的物體場景(現在一般來說指3d場景)

opengl可以通過「霧」來實現深度的視覺提示

opengl可以優化物體模型的抗鋸齒

opengl可以用來對場景進行著色、陰影、運動模糊、景深處理

渲染

指計算機根據物體模型建立影象的過程

模型(物體)

模型有時也被稱作物體。指用嚴格定義的語言或者資料結構對於三維物體的描述。而模型是根據基本的基本圖元所建立

圖元(幾何圖元)

指包括點、直線、多邊形和點陣圖等在幾何學上的描述。而幾何圖元是通過頂點來指定

畫素

指計算機顯示硬體可以在螢幕上顯示的最小可視元素。我們最終完成渲染的影象在螢幕上顯示出來就是無數畫素點組成的

位平面

實質是一塊記憶體區域,儲存了每個畫素的1個位的資訊。比如說某個位平面儲存了乙個畫素點的argb和座標資訊。

幀緩衝區

由無數字平面組成。儲存了圖形硬體為了控制螢幕上所有畫素的而所需要的資訊。

畫素、位平面、幀緩衝區依次是包含於的關係。

OpenGL入門學習

include 太陽 地球和月亮 假設每個月都是30天 一年12個月,共是360天 static int day 200 day的變化 從0到359 void mydisplay void void myidle void int main int argc,char argv 3 關於垂直同步co...

OpenGL入門學習

說起程式設計作圖,大概還有很多人想起tc的 include 吧?但是各位是否想過,那些畫面絢麗的pc遊戲是如何編寫出來的?就靠tc那可憐的640 480解析度 16色來做嗎?顯然是不行的。本帖的目的是讓大家放棄tc的老舊圖形介面,讓大家接觸一些新事物。opengl作為當前主流的圖形api之一,它在一...

OpenGL入門學習

說起程式設計作圖,大概還有很多人想起tc的 include 吧?但是各位是否想過,那些畫面絢麗的pc遊戲是如何編寫出來的?就靠tc那可憐的640 480解析度 16色來做嗎?顯然是不行的。本帖的目的是讓大家放棄tc的老舊圖形介面,讓大家接觸一些新事物。opengl作為當前主流的圖形api之一,它在一...