OpenGL系列教程之一:OpenGL(轉)

zhang43211234發表於2018-07-12

這個頁面包含了一些基礎的OpenGL教程和說明。所有的例子程式都是在Code::Blocks和Orwell Dev-C++下使用C++編寫的,當然也包括一些在linux和mac下執行所需要的makefile檔案。大多數情況下我使用的GLUT,你可以從這裡下載在Dev-C++中開發所需要的GLUT庫。




概述:

OpenGL是一種圖形硬體的軟體介面。這一章是對OpenGL的簡單描述。

原文地址:https://blog.csdn.net/u012501459/article/details/12945135


渲染管線

OpenGL渲染管線包含一系列有序地處理資料的階段。兩種圖形資料即基於頂點的資料和基於畫素的資料,在渲染管線中處理並統一輸出到幀緩衝區。




變換

OpenGL使用幾個4*4的矩陣來表示變換:GL_MODELVIEW(模型檢視矩陣),GL_PROJECT(投影矩陣),GL_TEXTURE(紋理矩陣)和GL_COLOR(顏色矩陣)。幾何資料和圖形資料在光柵化處理之前會先使用這些矩陣進行變換。




OpenGL中的Matrix4類

Matrix4類是一個通用的,獨立的矩陣類。它很容易被整合到OpenGL應用程式中。它提供了等價於glTranslate(),glRotatef(0,glScales()這些函式的矩陣變換模式。




頂點陣列

使用頂點陣列減少了函式呼叫了和共享頂點的冗餘使用。因此,你能提高渲染的效能。




顯示列表

顯示列表是一種快速渲染靜態資料的方式,因為OpenGL命令和頂點資料緩將儲存在顯示列表中,並且顯示列表使客戶端到伺服器端的資料傳送次數儘可能地少。




頂點緩衝區物件(VBO)

頂點緩衝區物件(VBO)允許頂點資料儲存在伺服器端高效能的顯示卡記憶體中,並促使高效的資料傳送。




畫素緩衝區物件(PBO)

畫素緩衝區物件(PBO)將畫素資料儲存在OpenGL的控制儲存器中,並且允許非同步地DMA方式在GPU和控制儲存器之間相互傳輸畫素資料。典型地使用PBO的例子是流紋理更新和非同步地回撥。




幀緩衝區物件(FBO)

幀緩衝區物件是為了實現一種不顯示在螢幕上的渲染的目的,這樣可以提高渲染到紋理和離屏渲染的效能。




網格化

網格化是將凹多邊形或有邊相交的多邊形劃分成凸多邊形。環繞的規則和環繞的數字決定了多邊形那些部分填充或不填充。




MVC Windows 圖形介面應用程式

MVC(Model-View-Controller,模型-檢視-控制)框架是GUI(Graphic User Interface,圖形使用者介面)程式的一種普遍的設計框架。MVC框架的好處是將OpenGL函式的呼叫從普遍的訊息路由中完全脫離開來。


相關文章