OpenGL基礎圖形程式設計(二)OpenGL概念建立
OpenGL基本理解
- 網格線繪圖方式(wireframe)
這種方式僅繪製三維物體的網格輪廓線。 - 深度優先網格線繪圖方式(depth_cued)
用網格線方式繪圖,增加模擬人眼看物體一樣,遠處的物體比近處的物體要暗些。 - 反走樣網格線繪圖方式(antialiased)
用網格線方式繪圖,繪圖時採用反走樣技術以減少圖形線條的參差不齊。 - 平面消隱繪圖方式(flat_shade)
對模型的隱藏面進行消隱,對模型的平面單元按光照程度進行著色但不進行光滑處理。 - 光滑消隱繪圖方式(smooth_shade)
對模型進行消隱按光照渲染著色的過程中再進行光滑處理,這種方式更接近於現實。 - 加陰影和紋理的繪圖方式(shadows、textures)
在模型表面貼上紋理甚至於加上光照陰影,使得三維景觀象照片一樣。 - 運動模糊的繪圖方式(motion-blured)
模擬物體運動時人眼觀察所感覺的動感現象。 - 大氣環境效果(atmosphere-effects)
在三維景觀中加入如霧等大氣環境效果,使人身臨其境。 - 深度域效果(depth-of-effects)
類似於照相機鏡頭效果,模型在聚焦點處清晰,反之則模糊。
這些三維物體繪圖和特殊效果處理方式,說明OpenGL已經能夠模擬比較複雜的三維物體或自然景觀,這就是我們所面對的OpenGL。
整個OpenGL的基本工作流程如下圖:
其中幾何頂點資料包括模型的頂點集、線集、多邊形集,這些資料經過流程圖的上部,包括運算器、逐個頂點操作等;影像資料包括象素集、影像集、點陣圖集等,影像象素資料的處理方式與幾何頂點資料的處理方式是不同的,但它們都經過光柵化、逐個片元(Fragment)處理直至把最後的光柵資料寫入幀緩衝器。在OpenGL中的所有資料包括幾何頂點資料和象素資料都可以被儲存在顯示列表中或者立即可以得到處理。OpenGL中,顯示列表技術是一項重要的技術。
OpenGL要求把所有的幾何圖形單元都用頂點來描述,這樣運算器和逐個頂點計算操作都可以針對每個頂點進行計算和操作,然後進行光柵化形成圖形碎片;對於象素資料,象素操作結果被儲存在紋理組裝用的記憶體中,再象幾何頂點操作一樣光柵化形成圖形片元。
整個流程操作的最後,圖形片元都要進行一系列的逐個片元操作,這樣最後的象素值BZ送入幀緩衝器實現圖形的顯示。
在上一節中說明了OpenGL的基本工作流程,根據這個流程可以歸納出在OpenGL中進行主要的圖形操作直至在計算機螢幕上渲染繪製出三維圖形景觀的基本步驟:
1)根據基本圖形單元建立景物模型,並且對所建立的模型進行數學描述(OpenGL中把:點、線、多邊形、影像和點陣圖都作為基本圖形單元)。
2)把景物模型放在三維空間中的合適的位置,並且設定視點(viewpoint)以觀察所感興趣的景觀。
3)計算模型中所有物體的色彩,其中的色彩根據應用要求來確定,同時確定光照條件、紋理貼上方式等。
4)把景物模型的數學描述及其色彩資訊轉換至計算機螢幕上的象素,這個過程也就是光柵化(rasterization)。
在這些步驟的執行過程中,OpenGL可能執行其他的一些操作,例如自動消隱處理等。另外,景物光柵化之後被送入幀緩衝器之前還可以根據需要物件素資料進行操作。
相關文章
- OpenGL基礎圖形程式設計(三)WindowsNT下的OpenGL程式設計Windows
- OpenGL基礎圖形程式設計(一)OpenGL與3D圖形世界程式設計3D
- OpenGL基礎圖形程式設計(四)基礎程式結構程式設計
- OpenGL shader 程式基礎
- Android OpenGL ES 開發(二):繪製圖形Android
- OpenGL 基礎光照詳解
- 併發程式設計——基礎概念(二)程式設計
- 4次Bezier曲線--計算機圖形學 opengl計算機
- OpenGL ES繪製3D圖形3D
- Android OpenGL 基礎入門Android
- OpenGL深入探索——《OpenGL程式設計指南(原書第8版)》——計算著色器程式設計
- OpenGL/OpenGL ES 入門:基礎變換 - 初識向量/矩陣矩陣
- OpenGL入門(1)——建立一個OpenGL專案
- Windows程式設計系列:圖形程式設計基礎Windows程式設計
- Linux下的OpenGL程式設計(轉)Linux程式設計
- OpenGL/OpenGL ES 初探
- OpenGL ES 2 0 (iOS)[03]:熟練圖元繪製,玩轉二維圖形iOS
- Android OpenGL ES 開發(二): OpenGL ES 環境搭建Android
- OpenGL 繪圖移動繪圖
- OpenGL 學習系列--基礎的繪製流程
- 用Delphi進行OpenGL程式設計學習心得 (轉)程式設計
- 併發程式設計——基礎概念(一)程式設計
- OpenGL ES 2 0 (iOS)[06 1]:基礎紋理iOS
- OpenGL 學習 04 圖元
- shell程式設計基礎二程式設計
- 用OpenGL實現射線揀取物件程式設計(轉)物件程式設計
- OpenGL系列教程之一:OpenGL(轉)
- OpenGL Android課程四:介紹紋理基礎Android
- 3D遊戲程式設計與設計4——遊戲物件與圖形基礎3D遊戲程式設計物件
- Java圖形設計和多媒體基礎Java
- 第二個OpenGL程式,矩形 (VAO VBO)_後續 EBO
- OpenGL 學習系列---基本形狀的繪製
- OpenGL Shader例項,OpenGL 粒子系統
- OpenGL 學習 01 Mac 搭建 OpenGL 環境Mac
- 【GLSL教程】(二)在OpenGL中使用GLSL
- linux下bluetooth程式設計(一)基礎概念Linux程式設計
- OpenGL版本與OpenGL擴充套件機制(轉)套件
- openGL學習