【初窺圖形編程】第一章:OpenGL

一、Open Graphics Library

1、什麼是OpenGL?

OpenGL(英語:Open Graphics Library,譯名:開放圖形庫或者“開放式圖形庫”)是用於渲染2D3D矢量圖形的跨語言跨平臺應用程序編程接口(API)。——百度百科

OpenGL最大的特點是跨平臺,它對於各種平臺都有一致的接口,因此OpenGL程序擁有良好的可移植性。

2、OpenGL有什麼作用?

1) 建模 OpenGL圖形庫除了提供基本的點、線、多邊形的繪製函數外,還提供了複雜的三維物體(球、錐、多面體、茶壺等)以及複雜曲線和曲面(如Bezier、Nurbs等曲線或曲面)繪製函數。

2) 變換 OpenGL圖形庫的變換包括基本變換和投影變換。基本變換有平移、 旋轉、變比鏡像四種變換,投影變換有平行投影(又稱正射投影)和透 視投影兩種變換。其變換方法與機器人運動學中的座標變換方法完全一致,有利於減少算法的運行時間,提高三維圖形的顯示速度。

3) 顏色模式設置 OpenGL顏色模式有兩種,即RGBA模式和顏色索引(Color Index)。

4) 光照和材質設置 OpenGL光有輻射光(Emitted Light)、環境光(Ambient Light)、漫反射光(Diffuse Light)和鏡面光(Specular Light)。材質是用光反射率來表示。場景(Scene)中物體最終反映到人眼的顏色是光 的紅綠藍分量與材質紅綠藍分量的反射率相乘後形成的顏色。

5) 紋理映射(Texture Mapping):利用OpenGL紋理映射功能可以十分逼真地表達物體表面細節。

6) 位圖顯示和圖象增強:圖象功能除了基本的拷貝和像素讀寫外,還提供融合(Blending)、反走樣(Antialiasing)和霧(fog)的特殊圖象效果處理。以上三條可是被仿真物更具真實感,增強圖形顯示的效果。

7) 雙緩存(Double Buffering)動畫:雙緩存即前臺緩存和後臺緩存,簡而言之,後臺緩存計算場景、生成畫面,前臺緩存顯示後臺緩存已畫好的畫面。此外,利用OpenGL還能實現深度暗示(Depth Cue)、運動模糊(Motion Blur)等特殊效果。從而實現了消隱算法。

 

二、OpenGL基本語法

1、OpenGL是一個狀態機

在上一章我們提到計算機渲染畫面是按照一個標準的圖形流水線繪製的,因此opengl程序繪製圖像時也是遵循這一規則,opengl函數只是用來設置流水線上的一些可操作參數,並不是真正執行繪製操作。

2、OpenGL相關庫

1)OpenGL library 核心庫

2)OpenGL utility library 實用程序庫

3)輔助OpenGL的工具庫

爲保證上面兩個庫的跨平臺性,opengl剝離了與用戶交互等非核心的函數,即工具庫的作用。

3、OpenGL基本語法

1)命名規則

2)數據類型

4、基本圖元類型

5、Freeglut編程基本模式

我u3d用的比較多,對消息驅動的這種編程方式比較熟悉。u3d是給出了update這個函數接口,每一幀調用一次這個接口,而這裏只是多了一些設置步驟,本質上和u3d的腳本編寫沒什麼不同。

6、OpenGL默認視點和座標系

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章