OpenGL程式設計需要了解的一些概念

2021-09-02 14:57:49 字數 1102 閱讀 3960

本部落格的內容出自於

僅根據自己的理解記錄下對自己很有幫助的地方

opengl是什麼?

opengl可以認為是乙個api,但具體來說opengl值規定了函式如何執行和輸出值,但沒有定義如何實現,具體實現細節是由顯示卡的生產商完成的。所以有時候opengl的bug可以通過公升級驅動來解決。

opengl早期的使用立即渲染模式(immediate mode,也就是固定渲染管線),這個模式下繪製圖形很方便。但是opengl的大多數功能都被庫隱藏起來,不夠靈活。因此從opengl3.2開始,鼓勵使用opengl核心模式

(core-profile),他更加靈活,但是用也更複雜,要求使用者理解opengl和圖形程式設計。

關於程式設計你需要了解的重要概念

opengl本質是乙個狀態機,一系列的變數描述opengl此刻應當如何執行。opengl的狀態通常被稱為opengl上下文(context)。我們通常使用如下途徑去更改opengl狀態:設定選項,操作緩衝。最後,我們使用當前opengl上下文來渲染。

opengl庫用c語言寫的,由於c的一些語言結構不易被翻譯到其它的高階語言,因此opengl開發的時候引入了一些抽象層。**「物件(object)」**就是其中乙個。在opengl中物件可以認為是乙個c風格的結構體(struct)。

必須的庫函式

在利用opengl繪圖之前,首先需要建立乙個opengl上下文(context)和乙個用於顯示的視窗,這些操作在不同的作業系統中是不同的,opengl把這些操作抽象了出去,glfw庫就提供了這些功能,它允許使用者建立opengl上下文,定義視窗引數以及處理使用者輸入。除此之外還有glut,sdt, sfml等。

編譯安裝步驟可以參考

01 getting started/02 creating a window/

前面已經說過opengl只提供了函式的標準或者說規範,而並未提供實現,這些是由驅動開發商完成的。那麼在使用任何乙個函式前首先需要找到函式實現的位置,然後才能使用,為了簡化這個過程,可以使用glad來幫你進行這些工作。

react需要了解的一些概念

高階元件本質上是乙個函式,是可以傳遞乙個元件作為引數,並且會返回乙個新的元件,可以通過props的形式傳遞給目標元件,這樣目標元件可以直接在props裡面獲取使用就可以,在工作中,我們使用的connect withrouter 還有一些自己封裝復用的元件 basicfram公共標題 class he...

Linux下需要了解的一些東西

今天分享一些關於linux有必要知道的東西 1 proc目錄 linux系統上的 proc目錄是一種檔案系統,即proc檔案系統。與其它常見的檔案系統不同的是,proc是一種偽檔案系統 也即虛擬檔案系統 儲存的是當前核心執行狀態的一系列特殊檔案,使用者可以通過這些檔案檢視有關系統硬體及當前正在執行程...

品牌設計需要了解的一些知識

1.品牌的名稱 這是品牌的一種稱呼,比如華為等這種就是乙個品牌的名稱,這是乙個企業的代表,好的品牌名稱 有利於減少讓消費者記住的成本,並且也同時增加了消費者記憶的力度。2.品牌的標誌 這一類就是我們經常看到的品牌標誌,看到這個標誌你就能想到這是那個產品,可以被消費者以及大眾所認出,這種型別的多用於圖...