openGL第六講 庫函式

2022-09-04 10:00:11 字數 2306 閱讀 9123

opengl基礎技術講座--庫函式與執行方式

1.4.1 opengl開發元件

windows9x/nt下的opengl元件有兩種,一種是sgi公司提供的,一種是microsoft公司提供的。兩者的開始庫大體上沒有什麼區別,都是由由三大部分組成:

(1) 函式的說明檔案:gl.h、glu.h、glut.h和glaux.h

(2) 靜態鏈結庫檔案:glu32.lib、glut32.lib、glaux.lib和opengl32.lib

(3) 動態鏈結庫檔案:glu.dll、glu32.dll、glut.dll、glut32.dll和opengl32.dll

所有開發opengl應用程式的庫檔案在本書所附光碟中可以找到。

1.4.2 opengl函式

開發基於opengl的應用程式,必須先了解opengl的庫函式。opengl庫函式的命名方式非常有規律,每個庫函式均有字首gl、glu、aux,分別表示該函式屬於opengl基本庫、實用庫和輔助庫。

opengl的庫函式大致可以分為六類:

1.opengl核心庫

包含有115個函式,函式名的字首為gl。

這部分函式用於常規的、核心的圖形處理。由於許多函式可以接收不同資料型別的引數,因此派生出來的函式原形多達300多個。

2.opengl實用庫

包含有43個函式,函式名的字首為glu。

這部分函式通過呼叫核心庫的函式,為開發者提供相對簡單的用法,實現一些較為複雜的操作。如:座標變換、紋理對映、繪製橢球、茶壺等簡單多邊形。

opengl中的核心庫和實用庫可以在所有的opengl平台上執行。

3.opengl輔助庫

包含有31個函式,函式名字首為aux。

這部分函式提供視窗管理、輸入輸出處理以及繪製一些簡單三維物體。

opengl中的輔助庫不能在所有的opengl平台上執行。

4.opengl工具庫

包含大約30多個函式,函式名字首為glut。

這部分函式主要提供基於視窗的工具,如:多視窗繪製、空訊息和定時器,以及一些繪製較複雜物體的函式。由於glut中的視窗管理函式是不依賴於執行環境的,因此opengl中的工具庫可以在所有的opengl平台上執行。

5.windows專用庫

包含有16個函式,函式名字首為wgl。

這部分函式主要用於連線opengl和windows 95/nt,以彌補opengl在文字方面的不足。windows專用庫只能用於windows 95/98/nt環境中。

6.win32 api函式庫

包含有6個函式,函式名無專用字首。

這部分函式主要用於處理畫素儲存格式和雙幀快取。這6個函式將替換windows gdi中原有的同樣的函式。win32api函式庫只能用於windows 95/98/nt環境中。

1.5 opengl程式執行方式

執行opengl主要有以下三種方式:

1.opengl硬體加速方式

一些顯示晶元如3dlabs公司的glint進行了優化,opengl的大部分功能均可由硬體實現,僅有少量功能由作業系統來完成。這樣極大地提高了圖形顯示的效能,並且能夠獲得工作站級的圖形效果,但是這樣的圖形硬體**十分昂貴,非一般使用者所能承擔。

2.三維圖形加速模式

一些中低檔的圖形晶元往往也具備一定的三維加速功能,由硬體來完成一些較為複雜的圖形操作。一些重要的opengl操作,例如z快取等就能夠直接由顯示卡硬

件來完成,顯示卡所不能支援的圖形功能,則通過軟體模擬的方式在作業系統中進行模擬。採用這種方法,顯示速度儘管無法與硬體加速方法相比,但與採用純軟體

模擬方式相比,速度要快得多。

3.純軟體模式

對於不具備三維加速功能的顯示卡,要想執行opengl,只能採用純軟體模擬方式。由於所有

複雜的opengl圖形功能均通過主機來模擬,所以速度將會受到很大的影響。但正是由於有了軟體模擬方式,才使得更多的使用者能夠領略opengl的強大功

能,並能在硬體效能較差的機器上對opengl進行開發。

採用了opengl技術,大大降低了開發高質量圖形軟體對軟、硬體的依賴程度。

opengl對硬體的要求如下:

cpu:pentinum或pentinum pro

時鐘頻率:90mhz以上

記憶體:16/32/64mb以上

硬碟:512mb以上

其它可選。

opengl對軟體環境的最低要求是:

作業系統:windows nt4.0以上或windows 95以上

opengl庫:visual studio 5.0以上版本已包含該庫。

以當前的計算機發展水平,達到以上軟、硬體配置水平實在易之又易。由此對於opengl對系統的低要求也可略見一斑。

第六講 if 語句

格式 單分支if 條件測試命令 then 命令序列 fi 多分支 if then 命令序列 else 命令序列 fi bin bash data new create if f file then echo exist file cat file wc l rm file else touch fi...

第六講感悟

方法是處理業務邏輯的 滿足使用者需求,有開發者設計的具有一定邏輯的 鄙人認為可以把方法看作是數學中的方程式,帶入因變數進行計算,得到所要求得的值 方法應盡可能單 一 簡單 容易理解。因此關於方法的返回值 有return語句的方法有可能還需被呼叫到其他方法中去使用 類似於三元一次方程兩兩相消後再求一次...

第六講 堆疊操作

本節中的例子其結構和例1一樣,僅改變mydisplay和myreshape。例4 利用堆疊繪製三個物體 乙個綠色的茶壺,乙個藍色的茶壺,乙個紅色的立方體 部分 void mydisplay void void myreshape glsizei w,glsizei h 執行後,我們可以看到左邊為乙個...