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 執行後,我們可以看到左邊為乙個...