




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第二計算機圖形系統(tǒng)演示文稿現(xiàn)在是1頁\一共有86頁\編輯于星期二(優(yōu)選)第二計算機圖形系統(tǒng)現(xiàn)在是2頁\一共有86頁\編輯于星期二2.1圖形系統(tǒng)2.1.1計算機圖形系統(tǒng)的結構2.1.2計算機圖形系統(tǒng)的基本功能現(xiàn)在是3頁\一共有86頁\編輯于星期二2.1.1計算機圖形系統(tǒng)的結構計算機圖形系統(tǒng)圖形軟件系統(tǒng)圖形硬件系統(tǒng)圖形應用軟件圖形支撐軟件圖形應用數據結構圖形輸入設備圖形輸出設備現(xiàn)在是4頁\一共有86頁\編輯于星期二2.1.2計算機圖形系統(tǒng)的基本功能1、處理功能:包含形體設計、分析,圖形描述,基本幾何元素(點、線、面等)的表示、求交運算、分類、幾何變換,光、色模型的建立和計算,干涉檢測等。2、存儲功能:存儲圖形數據,包括圖形幾何數據、拓撲關系及屬性信息等。3、交互功能:通過圖形顯示器和圖形輸入設備實現(xiàn)用戶與圖形系統(tǒng)的人機通信。用戶通過顯示屏幕觀察設計的圖形,利用交互輸入設備對圖形進行在線的操作(增加、刪除、修改等)以得到滿意的設計結果。4、輸入功能:將圖形的形狀、尺寸等有關的圖形數據和操作命令輸入到計算機中去。5、輸出功能:把所設計的圖形從計算機中輸出出來,包括顯示輸出和硬拷貝輸出兩種形式。現(xiàn)在是5頁\一共有86頁\編輯于星期二2.2圖形輸入設備作用:
圖形輸入設備用于輸入圖形數據或圖形操作命令分類:
一般應用輸入設備類:鼠標、鍵盤、光筆等特殊用途的圖形輸入設備:數據手套、觸摸板、圖像掃描儀等現(xiàn)在是6頁\一共有86頁\編輯于星期二2.2.1一般應用圖形輸入設備控制光標移動用來輸入定位坐標或選擇操作的輸入設備,它將移動距離及方向的信息變成數字脈沖信息送給計算機,由計算機轉換成光標的坐標數據,從而達到定位目的。分為:機械式和光電式。最基本的輸入設備,具有ASCII編碼鍵、命令控制鍵和功能鍵,能用來輸入圖形坐標、選擇菜單、選擇圖形功能等。1、鍵盤2、鼠標現(xiàn)在是7頁\一共有86頁\編輯于星期二光筆是一種檢測裝置,是“能檢測出光的筆”。它靠檢測熒光屏上的發(fā)光點來選擇屏幕的位置坐標。3、光筆(LigtPen)光筆的基本功能:定位、拾取和筆劃跟蹤。拾取是選中顯示器上已顯示的圖形或文字。筆劃跟蹤是用光筆拖動光標實現(xiàn)定位現(xiàn)在是8頁\一共有86頁\編輯于星期二①游戲桿:是有一根手柄的可搖動裝置。手柄通過一個球形軸承半固定在底座上,在手柄運動時帶動一對電位器或電脈沖產生器產生信號,控制屏幕上的光標的運動。②跟蹤球:跟蹤球是一個球,可用手掌或掌心旋轉使屏幕光標移動。附加的電位計量器用來測量球的旋轉量和方向。4、游戲桿(JoyStick)和跟蹤球現(xiàn)在是9頁\一共有86頁\編輯于星期二觸摸屏是允許用手指觸摸的方式選擇顯示屏幕位置的顯示器。根據觸點記錄方式將觸摸屏分為光學的、電子的和聲學。5、觸摸屏(TouchScreen)現(xiàn)在是10頁\一共有86頁\編輯于星期二2.2.2特殊應用圖形輸入設備特殊應用圖形輸入設備是指那些用于專門目的的圖形輸入專門設備。這里僅介紹數字化儀、圖象掃描儀、數碼相機?,F(xiàn)在是11頁\一共有86頁\編輯于星期二又稱繪圖板,是用來給物體作畫、著色或交互選擇坐標位置的常用設備。這些設備可輸入兩維或三維空間的坐標。通常,數字化儀在所繪制的圖或對象上掃描,并輸入一組隨機的坐標位置,相互之間以直線段連接,以逼近曲線或表面形狀。標準的數字化儀有兩個主要部分:(1)堅固的、內部布滿金屬柵格的圖板;(2)提供位置信息的定位器。1、數字化儀(Digitizer)現(xiàn)在是12頁\一共有86頁\編輯于星期二掃描儀是一種圖像輸入設備,是直接把圖形(工程圖紙)和圖像(照片、廣告等)掃描輸入到計算機中并以圖像形式存儲表示的設備。按掃描儀所支持的顏色可分為單色掃描儀和彩色掃描儀;按其所采用的固態(tài)器件又可分為電荷耦合器件(CCD)掃描儀、MOS電路掃描儀和緊貼型掃描儀;按掃描寬度和操作方式可以分為大型掃描儀、臺式掃描儀和手持式掃描儀。掃描儀的兩個重要指標是分辨率和支持的顏色數或灰度等級,如分辨率為1200dpi(dotsperinch),顏色為32位真彩色。現(xiàn)在大多掃描儀都提供分辨率和顏色、灰度的選擇功能。2、圖象掃描儀(ImageScanner)現(xiàn)在是13頁\一共有86頁\編輯于星期二數碼相機是專門用來獲取數字化圖像的照相機。雖然它從外觀上看很像一架普通的光學照相機,但內部結構卻大不相同。數碼相機利用電耦合器件成像,圖像存儲在半導體器件上。數碼相機作為計算機的輸入設備,將存儲在半導體器件上的圖像輸入到計算機中,并利用相應的軟件進行編輯處理,可用彩色打印機打印輸出。3、數碼相機(DigitalCamera)現(xiàn)在是14頁\一共有86頁\編輯于星期二2.3圖形繪制設備圖形輸出包括圖形顯示和圖形繪制。圖形繪制通常指把圖形畫在紙上,也稱硬拷貝。繪圖儀和打印機是兩種最常用的硬拷貝設備。現(xiàn)在是15頁\一共有86頁\編輯于星期二2.3.1繪圖儀繪圖儀分筆式繪圖儀和噴墨式繪圖儀兩種。噴墨式繪圖儀的工作原理是利用電脈沖控制噴墨頭,由噴墨頭上的噴嘴把墨滴噴到圖紙上而形成圖形。筆式繪圖儀又分為滾筒式繪圖儀和平板式繪圖儀兩種。滾筒式繪圖儀是把有孔的繪圖紙卷在有突針的滾筒上,機架靜止,筆在托架上運動,繪圖紙在滾輪上沿托架前后移動,從而繪制出圖形。繪圖紙和繪圖工具筆的運動是由兩只步進電機帶動,通過控制兩只步進電機進行繪圖。繪圖工具可以是筆,也可以是彩色噴墨頭。滾筒式繪圖儀一般結構較簡單、價格較低,但精度和速度不高。平板式繪圖儀有一塊繪圖平板,圖紙平鋪在繪圖平板上,橫梁和筆架運動。這種繪圖儀精度高、速度快、但價格也較高。繪圖筆的運動有六種基本動作:+X、-X、+Y、-Y四個方向上的移動和抬筆、落筆。因此,任何繪圖路線都只能由這四個方向的基本運動組成?,F(xiàn)在是16頁\一共有86頁\編輯于星期二2.3.2打印機打印機可用來輸出文本、數據和圖形。目前常用的打印機主要有針式打印機、噴墨打印機和激光打印機?,F(xiàn)在是17頁\一共有86頁\編輯于星期二1、針式打印機針式打印機的打印機頭上裝有一組打印鋼針,在打印機和打印頭之間裝有色帶,通過選擇打出的某些鋼針撞擊色帶和紙將點陣圖案印在紙上。打印時打印頭從左至右移動來打印一行,當打完一行后打印紙以一定的行距向前移動,以便打印下一行。這種打印機因機器本身和耗材的價格便宜而被普遍使用,但作為圖形輸出設備時因其輸出精度太低致使圖形質量很差。現(xiàn)在是18頁\一共有86頁\編輯于星期二2、噴墨打印機噴墨打印機的基本原理是通過噴墨頭在打印紙上橫向移動時將小墨點噴射到打印紙上來形成圖案的。墨水泵將黃、品紅、青3種顏色的墨水分別注入3支很細的噴筆中,在高壓下,墨水通過噴筆內細而長的玻璃毛細管噴到紙上。噴墨打印機因其價格較激光打印機便宜,使用彩色墨盒的彩噴可打印彩色圖形,所以是較理想的圖形打印設備,但速度較慢且耗財昂貴?,F(xiàn)在是19頁\一共有86頁\編輯于星期二3、激光打印機激光打印機的基本原理:用激光束在光敏鼓上掃描,通過控制激光束的開關來控制光敏鼓是否吸附碳粉。當光敏鼓在紙上滾動時,便能在紙上輸出圖形等信息。激光打印機有效地利用了激光的定向性、單色性和能量密集性,結合電子掃描技術的高靈敏度和快速存取等特性,使輸出圖形圖像的質量非常高,是理想的圖形輸出設備。激光打印機正朝著高速度、高精度、低噪音、彩色化的方向發(fā)展。現(xiàn)在是20頁\一共有86頁\編輯于星期二2.4圖形顯示系統(tǒng)圖形顯示指的是在顯示器屏幕上輸出圖形,顯示器通過顯示卡接到系統(tǒng)總線上,顯示器和顯示卡共同構成了顯示系統(tǒng)?,F(xiàn)在是21頁\一共有86頁\編輯于星期二2.4.1顯示器顯示器是顯示圖形的設備。根據顯示器外形可將其分為兩種類型:陰極射線管式(CRT)顯示器和平板顯示器(液晶顯示器、等離子顯示器、激光顯示器等)。在應用中,以前是以CRT顯示器為主;目前,由于液晶顯示器價格的大幅降低,使用日漸增多,大有取代CRT顯示器的趨勢?,F(xiàn)在是22頁\一共有86頁\編輯于星期二1、陰極射線管(CRT)陰極射線管(CRT,CathodeRayTube)是CRT顯示器的主要組成部分。根據陰極射線管的可顯示顏色數可分為單色陰極射線管和彩色陰極射線管兩種?,F(xiàn)在是23頁\一共有86頁\編輯于星期二(1)單色陰極射線管CRT是一種真空器件,利用電磁場產生高速的、經過聚焦的電子束,偏轉到屏幕的不同位置轟擊屏幕表面的熒光材料而產生可見圖形?,F(xiàn)在是24頁\一共有86頁\編輯于星期二陰極射線管的各組成部分及其功能:電燈絲:通電后變熱以給陰極加熱。陰極:由燈絲加熱后釋放自由電子,在其周圍形成電子云??刂茤牛杭由县撾妷汉?,能夠控制通過其中小孔的帶負電的電子束的強弱。通過調節(jié)負電壓高低來控制電子數量,來控制熒光屏上相應點的亮度。聚焦系統(tǒng):保證電子束在轟擊屏幕時,匯聚成很細的點。加速電極:對電子束加速,用于產生高速電子束。偏轉系統(tǒng):控制電子束的偏轉路徑,以轟擊屏幕的特定位置。屏幕:內壁涂有熒光粉,常稱作熒光屏,是CRT顯示圖形的表面?,F(xiàn)在是25頁\一共有86頁\編輯于星期二(2)彩色陰極射線管如果顯示屏上只涂一種熒光粉,則只能發(fā)出一種光色,這種顯示器稱作單色顯示器,色彩單調。彩色顯示器利用能發(fā)出不同光色的熒光粉的光色組合來顯示彩色圖形。最常用的CRT彩色顯示器采用的是蔭罩式彩色顯像管。現(xiàn)在是26頁\一共有86頁\編輯于星期二根據影孔板孔的形狀可將影孔板分為三類:①點狀影孔板:大多數球面與柱面顯像管采用此類影孔板。由于太多電子無法穿過蔭罩孔而直接打在蔭罩上,導致長時間工作后,蔭罩容易出現(xiàn)過熱導致變形,影響屏幕的局部色純。但其抗震性好。②柵格式影孔板:這種并行排列的方式容易對齊,調出的顏色也較鮮艷,常用于高分辨率的彩色CRT顯示器。如,Sony的Trinitron與Mitsubishi的Diamondtron顯像管采用此類影孔板。③溝槽式影孔板:長形板孔在保證蔭罩強度的前提下,提高了電子透過率。LG的Flatron顯像管采用此類影孔板。(a)點狀影孔板(b)柵格式影孔板(c)溝槽式影孔板現(xiàn)在是27頁\一共有86頁\編輯于星期二2、CRT圖形顯示器按其掃描方式,CRT顯示器可分為隨機掃描顯示器(又稱矢量顯示器)、直視存儲管圖形顯示器和光柵掃描式顯示器三種。它們的原理不同,可顯示的圖形種類不同,因此用途也不同。現(xiàn)在是28頁\一共有86頁\編輯于星期二(1)隨機掃描的圖形顯示器隨機掃描圖形顯示器,又稱向量(vector)顯示器、筆劃(Strokewriting)顯示器,是畫線設備,其特點是電子束可隨意移動,只掃描熒屏上要顯示的部分。優(yōu)點:掃描速度快,分辨率高,線條質量好,易修改,交互性好,動態(tài)性能好。缺點:價格貴;只能顯示線框圖形,并不能顯示逼真的有陰影場景。應用領域:主要應用于軍事、CAD領域?,F(xiàn)在是29頁\一共有86頁\編輯于星期二(2)直視存儲管圖形顯示器直視存儲管DVST(direct-viewstoragetube)通過緊貼在屏幕熒光層后的電荷分布(存儲柵)來存儲圖形信息。從表面上看直視存儲管的特性極象一個有長余輝的熒光屏,一條線一旦畫在屏幕上,在一小時之內都將是可見的。
DVST的特點有:無需刷新,很復雜的圖形也可以在極高的分辨率下無閃爍地顯示,成本較低;不能顯示彩色,不能局部修改,擦除和重畫過程對復雜圖形來講可能需要幾秒鐘?,F(xiàn)在是30頁\一共有86頁\編輯于星期二(3)光柵掃描式顯示器目前使用最廣泛的CRT顯示器是基于電視技術的光柵掃描式顯示器。在光柵掃描系統(tǒng)中,電子束橫向掃描屏幕,一次一行,從頂到底順次進行。當電子束橫向沿一行移動時,電子束的強度不斷變化來建立亮點的圖案。現(xiàn)在是31頁\一共有86頁\編輯于星期二關于光柵掃描的幾個概念如下:幀:電子束從左到右、自頂至底掃描一遍,對應于一幀。水平回掃:每條掃描線末端,電子束返回到屏幕的左端,稱為電子束的水平回掃。回掃時關閉電子槍。垂直回掃:在每幀的終了,電子束返回到屏幕的左上角,稱為電子束的垂直回掃?;貟邥r關閉電子槍。行頻、幀頻:水平掃描頻率為行頻,垂直掃描頻率為幀頻。掃描方式:有逐行掃描和隔行掃描。逐行掃描是從屏幕頂端開始,逐行下掃,直到屏幕底部。隔行掃描是先掃偶數行掃描線,再掃奇數行掃描線。隔行掃描技術主要用于刷新速率較慢的顯示器中,以避免閃爍。刷新速率:以多少周期/秒或赫茲/秒為單位來描述。一個周期對應一幀。如每秒60幀的刷新速率為60Hz/s。采用一定速率的刷新來保持屏幕顯示的圖形穩(wěn)定?,F(xiàn)在是32頁\一共有86頁\編輯于星期二3、液晶顯示器LCD(LiquidCrystalDisplay)由于CRT顯示器體積大、重量重、耗電量高、產生輻射與電磁波干擾等缺點,而液晶顯示器能克服這些不足,應用日益廣泛,前景十分廣闊。液晶顯示器是基于液晶電光效應的顯示器件。液晶是一種介于液體和固體之間的具有規(guī)則性分子排列的有機化合物,分子形狀為細長棒形,長寬約1nm~10nm。在不同電流電場作用下,液晶分子會做規(guī)則旋轉90度排列,產生透光度的差別,如此在電源ON/OFF下產生明暗的區(qū)別。依此原理控制每個像素,便可構成所需圖像。現(xiàn)在是33頁\一共有86頁\編輯于星期二液晶顯示器由六層薄板組成:第一層是垂直偏光板,第二層是鍍在石英平面上的垂直網格線板,第三層是液晶層,第四層是水平網格線板,第五層是水平偏光板,第六層是反射層。在不加電場的情況下,入射光經過偏光板后通過液晶層,偏光被分子扭轉排列的液晶層旋轉90度。在離開液晶層時,其偏光方向恰與另一偏光板的方向一致,所以光線能順利通過,使電極面呈光亮。當加入電場的情況時,每個液晶分子的光軸轉向與電場方向一致。液晶層也因此失去了旋光的能力,結果來自入射偏光板的偏光,其方向與另一偏光板的偏光方向成垂直的關系,并無法通過,這樣電極面就呈現(xiàn)黑暗的狀態(tài)。液晶層中的水晶液滴都被包含在細小的單元格結構中,一個或多個單元格構成屏幕上的一個像素。顯示圖像時,通過對顯示信號的AD轉換,計算出各像素的通斷狀態(tài)后,直接把信號驅動具體像素,控制該液晶像素對光線的"通斷",就可以在屏幕上生成圖像。反射層水平偏光板水平網格線液晶層垂直網格線垂直偏光板圖2.18液晶顯示器的六層結構現(xiàn)在是34頁\一共有86頁\編輯于星期二液晶顯示器具有如下優(yōu)點:①體積小,重量輕;②功耗低(數十uW/cm
以下),散熱?。虎劬_還原畫面,文字銳利;④畫面不閃爍;⑤幅射??;⑥屏幕調節(jié)簡單方便。目前,LCD顯示器圖像質量還不夠完善,色彩表現(xiàn)和飽和度不及CRT顯示器,而且響應時間也比CRT顯示器長,當畫面更新速度快而劇烈時,畫面延遲會產生重影、脫尾等現(xiàn)象?,F(xiàn)在是35頁\一共有86頁\編輯于星期二2.4.2相關概念(1)分辨率(2)象素與幀緩存(3)顏色查找表(4)屏幕坐標系現(xiàn)在是36頁\一共有86頁\編輯于星期二(1)分辨率(Resolution)光點是指電子束打在顯示器的熒光屏上能夠顯示的最小發(fā)光點,一般用直徑來表明光點的大小。在當前的圖形顯示模式下,屏幕上可以控制的可顯示的最小單元,被稱作像素點
(pixel),它是組成圖形的基本元素。圖形顯示系統(tǒng)中的三種分辨率概念:①屏幕分辨率,也稱為光柵分辨率或物理分辨率,是指CRT顯示器顯示系統(tǒng)能夠顯示的最大光點數,通常用水平方向上的光點數與垂直方向上的光點數的乘積來表示。②顯示分辨率:是顯示控制器所能提供的顯示模式分辨率。顯示系統(tǒng)的顯示模式分為文本模式和圖形模式。對于文本顯示方式,顯示分辨率用水平和垂直方向上所能顯示的字符總數的乘積表示。對于圖形顯示方式,顯示分辨率是指屏幕上所包含像素的個數,通常用水平和垂直方向上所能顯示的象素點總數的乘積表示。③存儲分辨率:是指幀緩沖區(qū)的大小,一般用緩沖區(qū)的字節(jié)數表示。存儲分辨率不僅與顯示分辨率有關,還與象素點的色彩有關。幀緩存的容量等于顯示分辨率乘上每個像素對應的字節(jié)數。三種分辨率的概念既有區(qū)別又有聯(lián)系,對圖形的顯示都會產生一定的影響。屏幕分辨率決定了所能顯示的最高分辨率;顯示分辨率和存儲分辨率對所能顯示的圖形也有控制作用?,F(xiàn)在是37頁\一共有86頁\編輯于星期二(2)象素與幀緩存屏幕上一個象素點具有顏色、灰度等屬性,它們存儲在幀緩存中,所以,象素點對應幀緩存中的一組信息,其對應技術有組合象素法(PackedPixelMethod)和顏色位面法(ColorPlaneMethod)。幀緩沖存儲器CRT光柵電子槍寄存器1DAC現(xiàn)在是38頁\一共有86頁\編輯于星期二現(xiàn)在是39頁\一共有86頁\編輯于星期二當屏幕分辨率為1024×1024,每個象素24位(以真彩色顯示)時,幀緩存的容量需要:1024×1024×24/8=3M字節(jié)現(xiàn)在是40頁\一共有86頁\編輯于星期二(3)顏色查找表現(xiàn)在是41頁\一共有86頁\編輯于星期二(4)屏幕坐標系屏幕是顯示圖形的場所,為了進行定位,在屏幕上定義了一個屏幕坐標系。它給出了第一象限的一個平面區(qū)域0≤x≤Xmax,0≤y≤Ymax(分辨率為(Xmax+1)*(Ymax+1))。坐標值是正整數,一對(X,Y)坐標對應一個像素點。注意有些顯示器的屏幕坐標系的Y軸方向向上而有的向下。圖2.23兩種屏幕坐標系現(xiàn)在是42頁\一共有86頁\編輯于星期二2.5圖形軟件標準圖形標準是指系統(tǒng)中各界面之間進行數據交換的接口標準、語言連接規(guī)范和應用程序接口API標準等。圖形標準的制定是為了在不同的計算機系統(tǒng)和圖形設備之間進行圖形應用軟件的移植。隨著計算機圖形學應用領域的不斷擴大,各種圖形軟件日益增多,圖形輸入輸出設備也是種類繁多。如果沒有一些軟件標準,對應用軟件的開發(fā)和移植等工作將造成困難。20世紀50年代到70年代初,人們要求圖形軟件想著通用、高級、與設備無關的方向發(fā)展,導致了計算機圖形標準的出現(xiàn)。圖形標準的研究和制定于20世紀70年代初開始,在80年代進入了大發(fā)展時期。1985年,第一個國際計算機圖形信息標準及計算機圖形核心系統(tǒng)(GKS)正式頒布。之后,三維圖形核心系統(tǒng)(GKS-3D)、程序員層次交互式圖形系統(tǒng)(PHIGS)、計算機圖形原文件(CGM)、計算機圖形接口(CGI)、初始圖形交換規(guī)范(IGES)以及產品數據交換標準(STEP)等相繼制訂并頒布。除了由官方標準化組織發(fā)布的圖形標準外,還有一些被工業(yè)界使用的已經成為事實上的標準,比較著名的有SGI等公司的OpenGL,微軟公司的DirectX等。計算機圖形標準的研究和發(fā)展,進一步推動了計算機圖形學及其應用技術的發(fā)展。本節(jié)將介紹GKS標準、CGM標準、CGI標準、IGES標準、DXF標準、STEP標準、OpenGL標準?,F(xiàn)在是43頁\一共有86頁\編輯于星期二1、GKS標準圖形核心系統(tǒng)GKS(GraphicalKernelSystem)是由德國工業(yè)標準化組織協(xié)會提出的并被許多國家采納、引用的第一個圖形軟件國際標準。它是一個子程序軟件包,提供了各種物理的圖形輸入輸出設備和應用軟件之間的接口。用戶通過應用程序調用GKS的功能子程序便可方便的進行圖形的輸入、輸出、變換、組合、裝配等交互設計操作。GKS獨立與設備和高級語言。它免除了繪圖設計和顯示指令的繁瑣工作,也不需要詳細了解各種圖形的輸入輸出設備的控制功能,減輕了設計人員的許多重復性工作。由于GKS使應用軟件只與抽象的邏輯設備打交道,略去了物理設備的個性,為應用軟件的移植提供了極大的方便,從而使開發(fā)的軟件具有了設備無關性。為便于應用,GKS提供了與各種流行高級語言的接口,并作為獨立于高級語言的通用軟件為開發(fā)各種應用圖形軟件服務。GKS是針對二維圖形應用的,為滿足三維圖形應用的需求,在此基礎上又制定了GKS-3D。GKS-3D具有三維圖素、填充區(qū)域圖素集、具有視圖操作的三維變換、三維輸入、消隱處理、邊界屬性和三維幾何屬性等功能。GKS-3D是一個完全的三維圖形系統(tǒng),并與GKS(2D)兼容。GKS的應用領域十分廣泛,包括科學技術和商業(yè)圖形的生成、支持地圖學、過程控制和CAX等領域的應用?,F(xiàn)在是44頁\一共有86頁\編輯于星期二2、CGM標準計算機圖形元文件CGM(ComputerGraphicMetafile)規(guī)定了生成與設備無關的圖形定義、存取和傳遞圖形數據的格式。它提供了把不同圖形系統(tǒng)所產生的圖形集成到一起的一種手段,適用于各種設備和應用程序。CGM標準是由一套標準的與設備無關的定義圖形的語法和詞法元素組成。它分為兩部分,第一部分是功能描述,包括元素標志符、語義的說明及參數描述,以抽象的詞法描述了相應的文件格式;第二部分描述了3種標準元文件編碼形式,即字符、二進制數和正文編碼。CGM標準元文件本身并不提供元文件生成和解釋的具體方法,而利用上述三種不同的標準數據編碼形式來實現(xiàn)元文件的元素功能?,F(xiàn)在是45頁\一共有86頁\編輯于星期二
3、CGI標準計算機圖形接口CGI(ComputerGraphicsInterface)是ISOTC97組提出的圖形設備標準。CGI是第一個針對圖形設備接口,而不是應用程序接口的交互式計算機圖形標準。CGI的目標是使應用程序和圖形庫直接與各種不同的圖形設備相作用,使其在各種圖形設備上不經修改就可以運行,即在用戶程序和虛擬設備之間以一種獨立于設備的方式提供圖形信息的描述和通信。CGI規(guī)定了發(fā)送圖形數據到設備的輸出和控制功能,從圖形設備接收圖形數據的輸入、查詢和控制功能,因CGI是設備級接口,對出錯處理和調試只提供了最小支持。CGI提供的功能集包括控制功能集、獨立于設備的圖形對象輸出功能集、圖段功能集、輸入和應答功能集以及產生、修改、檢索和顯示以象素數據形式存儲的光柵功能集。在二維圖形設備中可以找到CGI支持的功能,但沒有一個圖形設備包含由CGI定義的所有功能,從這個意義上說,CGI定義了與虛擬設備的接口?,F(xiàn)在是46頁\一共有86頁\編輯于星期二4、IGES標準基本圖形交換規(guī)范IGES(InitialGraphicsExchangeSpecification)是CAD/CAM應用最廣泛的數據交換標準。它于1980年由美國國家標準局(NBS)主持成立由波音公司和通用電氣公司參加的技術委員會制訂,并于1981年正式成為美國的國家標準。它適用于CAD/CAM系統(tǒng)間或同一CAD/CAM系統(tǒng)內部不同模塊間的圖形信息交換。IGES文件由五或六個段組成:標志(flag)段、開始(start)段、全局(global)段、元素索引(directoryentry)段、參數數據(paramterdata)段、結束(terminate)段組成。其中,標志段僅出現(xiàn)在二進制或壓縮的ASCII文件格式中。在IGES文件中表示信息的基本單位是元素,IGES定義了五類元素:曲線和曲面幾何元素、構造實體幾何CSG元素、邊界B-Rep實體元素、標注元素和結構元素。各商用CAD系統(tǒng)幾乎都提供了IGES文件前、后置處理程序,實現(xiàn)將傳送來的數據格式轉換為IGES文件格式,把IGES文件格式轉換為CAD系統(tǒng)內部的數據格式。現(xiàn)在是47頁\一共有86頁\編輯于星期二5、DXF標準數據交換格式DXF(DrawingExchangeFile)是Autodesk公司首先用于描述AutoCAD圖形的文件。每個CAD系統(tǒng)都有自己的數據文件,數據文件分圖形數據文件、幾何模型文件和產品模型文件幾種。數據文件的格式與每個CAD系統(tǒng)自己的內部數據模式密切相關,而每個CAD系統(tǒng)自己內部的數據模式一般是不公開的,也是各不相同的。由于用戶使用的需要,就有數據交換文件概念的出現(xiàn)。一個完整的DXF文件是由四個段和一個文件結尾組成的。其順序如下:(1)標題段,記錄AutoCAD系統(tǒng)的所有標題變量的當前值或當前狀態(tài)。這些標題變量記錄了AutoCAD系統(tǒng)的當前工作環(huán)境。例如,AutoCAD版本號、插入基點、繪圖界限、SNAP捕捉的當前狀態(tài)、柵格間距、式樣、當前圖層名、當前線型和當前顏色等;(2)表段,包含了四個表,每個表又包含可變數目的表項。按照這些表在文件中出現(xiàn)的順序,它們依次為線型表、圖層表、字樣表和視圖表;(3)塊段,記錄定義每一塊時的塊名、當前圖層名、塊的種類、塊的插入基點及組成該塊的所有成員。塊的種類分為圖形塊、帶有屬性的塊和無名塊三種。無名塊包括用HATCH命令生成的剖面線和用DIM命令完成的尺寸標注;(4)元素段,記錄了每個幾何元素的名稱、所在圖層的名稱、線型名、顏色號、基面高度、厚度以及有關幾何數據;(5)文件結束,標識文件結束。DXF為AutoCAD系統(tǒng)的圖形數據文件,是具有專門格式的ASCII碼文本文件。AutoCAD可以用DXFFOUT命令生成它,也或以用DXFIN命令讀入它,許多CAD系統(tǒng)具有輸入和輸出該文件的功能。DXF雖然不是標準,但已成為事實上的數據交換標準?,F(xiàn)在是48頁\一共有86頁\編輯于星期二6、產品數據表達與交換標準STEP產品數據表達與交換標準STEP(StandardforTheExchangeofProductmodeldata)是為了克服IGES存在的文件太長及有些數據不能表達等問題而開發(fā)的,是一個關于產品數據計算機可理解的表示和交換的國際標準,目的是提供一種不依賴于具體系統(tǒng)的中性機制,能夠描述產品整個生命周期中的產品數據。產品生命周期包括產品的設計、制造、使用、維護、報廢等。產品在各過程產生的信息既多又復雜,而且分散在不同的部門和地方。這就要求這些產品信息以計算機能理解的形式表示,而且在不同的計算機系統(tǒng)之間進行交換時保持一致和完整。產品數據的表達和交換,構成了STEP標準,STEP把產品信息的表達和用于數據交換的實現(xiàn)方法區(qū)分開來?,F(xiàn)在是49頁\一共有86頁\編輯于星期二7、OpenGL標準OpenGL(OpenGrepgicsLibrary)是在SGI等多家世界聞名的計算機公司的倡導下制定的一個通用共享的開放式的三維圖形標準。它提供了一個標準的計算機圖形學所使用的數學模型到顯示的接口,并獨立于硬件設備和操作系統(tǒng)。以它為基礎開發(fā)的應用程序,可以運行于當前各種流行的操作系統(tǒng)并可方便地在各平臺間移植。從個人機到工作站及超級計算機,利用它都能實現(xiàn)高性能的三維圖形功能。由于OpenGL具有高度的可充用性和靈活性,它已經成為高性能圖形和交互式視景處理的工業(yè)標準,廣泛應用于軍事、CAD/CAM/CAE、電視廣播、娛樂、藝術造型、醫(yī)療影像、虛擬世界等方面。OpenGL的核心庫包括一百多個用于三維圖形操作的函數,除了提供基本的點、線和多邊形的繪制函數外,還提供了復雜的三維物體以及復雜曲線和曲面的繪制函數,主要負責處理對象的外形描述、幾何變換和投影變換、繪制三維物體、光照和材質設置、顏色模式設置、著色、位圖顯示與圖像增強、紋理映射、動畫制作、交互操作等三維圖形圖像操作?,F(xiàn)在是50頁\一共有86頁\編輯于星期二2.6VisualC++的圖形程序開發(fā)方法Windows提供了豐富的內部函數,稱為API(ApplicationProgrammingInterface),其中的圖形設備接口GDI(GraphicsDeviceInterface)是用于處理圖形函數調用和驅動繪圖設備的動態(tài)鏈接庫。Windows應用程序就是通過使用GDI進行圖形編程的。為實現(xiàn)設備無關性,GDI定義了設備環(huán)境(又稱設備上下文)。用戶繪制屏幕時需通過設備環(huán)境DC間接實現(xiàn)。VisualC++的MFC封裝了許多與設備環(huán)境相關的類,通過這些類可使用戶很容易地對DC進行處理。這些類不僅包含DC自身,而且還有字體、畫筆、畫刷等繪圖工具??傮w來說,圖形編程就是通過調用Windows自帶的GDI函數庫中的函數和對DC進行操作,來完成繪制任務的?,F(xiàn)在是51頁\一共有86頁\編輯于星期二2.6.1圖形設備接口GDI
1、圖形設備接口GDIGDI接受Windows應用程序的繪圖請求(表現(xiàn)為GDI函數調用),并將它們傳給相應的設備驅動程序,完成特定硬件的輸出,如打印機打印和屏幕顯示。GDI負責Windows的所有圖形輸出。Windows圖形編程主要是調用GDI中的相關函數并通過獲取DC的“狀態(tài)”,以確定圖形的顏色、尺寸等屬性。應用程序使用GDI可創(chuàng)建三種類型的圖形輸出:矢量輸出、光柵圖形輸出和文本輸出。通過GDI可以實現(xiàn)對圖形的顏色、線條的粗細等屬性的控制。通過調用這些GDI函數操作硬件,可實現(xiàn)設備無關性?,F(xiàn)在是52頁\一共有86頁\編輯于星期二2、設備上下文DCWindows不允許直接操作顯示輸出設備,而是通過一個抽象層與設備上下文進行通訊。設備上下文DC(DeviceContext,又稱設備環(huán)境,也稱設備描述表)實際上就是一個關于如何繪制圖形方法的集合,它不僅可以繪制各種圖形,而且還可以確定在應用窗口中繪制圖形的方式,即確定繪圖模式和映射模式。DC的數據結構存儲了顯示器(或打印機)的性能、屬性之類的詳細信息,這些數據信息決定程序如何在顯示器上進行顯示。在Windows環(huán)境下,所有圖形輸出都是在DC上進行的。圖形和輸出類封裝了設備環(huán)境和繪圖工具,用來支持各種圖形設備環(huán)境。用戶在繪圖之前,必須獲取繪圖窗口區(qū)域的一個設備環(huán)境DC,然后才能進行GDI函數的調用,以執(zhí)行適合于設備環(huán)境DC的命令。
另外,應該注意的是,Windows的設備環(huán)境是GDI的關鍵元素,它代表了不同的物理設備。現(xiàn)在是53頁\一共有86頁\編輯于星期二3、CDC類
CDC是設備上下文的基類,包含了繪圖所需要的所有成員函數(包括部分虛函數).在MFC中,提出這些派生類的目的就是為了在不同的顯示設備上進行顯示?,F(xiàn)在是54頁\一共有86頁\編輯于星期二函數說明Arc()繪制橢圓弧BitBlt()把位圖從一個DC拷貝到另一個DCDraw3dRect()繪制三維矩形DrawDragRect()繪制用鼠標拖拽的矩形DrawEdge()繪制矩形的邊緣DrawIcan()繪制圖標Ellipse()繪制橢圓FillRect()用給定畫刷的顏色填充矩形FillRgn()用給定畫刷的顏色填充區(qū)域GetBkColor()獲取背景顏色GetCurrentBitmap()獲取所選位圖的指針GetCurrentBrush()獲取所選畫刷的指針GetCurrentFront()獲取所選字體的指針GetCurrentPalette()獲取所選調色板的指針GetCurrentPen()獲取所選畫筆的指針GetCurrentPosition()獲取畫筆的當前位置GetMapMode()獲取當前設置映射模式GetPixel()獲取給定像素的RGB顏色值(1)CDC中常用的成員函數現(xiàn)在是55頁\一共有86頁\編輯于星期二GetTextColor()獲取文本顏色GetTextExtent()獲取文本寬度和長度GetWindow()獲取DC窗口的指針LineTo()繪制線條MoveTo()設置當前畫筆的位置Pie()繪制餅圖Polygon()繪制多邊形Polyline()繪制一組線條RealizePalette()將邏輯調色板映射到系統(tǒng)調色板Rectangle()繪制矩形RoundRect()繪制圓角矩形SelectObject()選取GDI繪圖對象SelectStockObject()選取庫存(預定義)圖形對象SetBkColor()設置背景顏色對象SetMapMode()設置映射模式SetPixel()把像素設置成給定顏色SetTextColor()設置文本顏色StretchBlt()把位圖從一個DC拷貝到另一個DC,并根據需要擴充或壓縮位圖TextOut()繪制文本串現(xiàn)在是56頁\一共有86頁\編輯于星期二(2)CDC類的派生類派生類名稱說明CClientDC提供對窗口客戶區(qū)域的圖形訪問。在窗口中畫圖時可使用此類DC,但WM_PAINTWindows消息除外。CMetaFileDC代表Windows圖元文件,它包含一系列命令已重新產生圖形。想要創(chuàng)建獨立于設備的文件時可使用此類DC,用戶可以回放這種文件來創(chuàng)建圖像。CPaintDC創(chuàng)建響應WM_PAINTWindows消息,通常在MFC應用程序的OnPaint()函數中使用。CWindowDC可以提供在整個窗口(包括客戶區(qū)和非客戶區(qū))中畫圖的設備環(huán)境?,F(xiàn)在是57頁\一共有86頁\編輯于星期二(3)CDC類的調用函數與設備環(huán)境有關的常用函數:
①GetDC()函數:用于獲取指定窗口的客戶區(qū)的顯示器設備環(huán)境原型聲明如下:CDC*CWnd::GetDC();②ReleaseDC()函數:用于釋放由調用GetDC或GetWindowDC函數獲取的指定設備環(huán)境。它對類或私有設備環(huán)境無效,以便該設備環(huán)境可以被其它應用程序使用。其原型聲明如下:intReleaseDC(CDC*pDC);//pDC為待釋放的設備環(huán)境的指針③BeginPaint()函數:為在指定的窗口中畫圖做準備工作,并且把與繪圖有關的信息填寫到PAINTSTRUCT結構中。原型聲明如下:CDC*CWnd::BeginPaint(LPPAINTSTRUCTlpPaint);
lpPaint參數是指向PAINTSTRUCT結構的指針。若函數調用成功則返回指定窗口的顯示器設備環(huán)境的指針,否則返回NULL現(xiàn)在是58頁\一共有86頁\編輯于星期二④EndPaint()函數EndPaint()函數是用來結束指定窗口中的繪圖過程,其原型聲明如下:voidEndPaint(LPPAINTSTRUCTlpPaint);其參數的含義與BeginPaint()函數中的相同,返回值總是TRUE。⑤SelectObject()函數SelectObject()函數用于把位圖、畫筆、畫刷等GDI對象選入設備環(huán)境中,用新的對象替代同一類型的對象,其原型聲明如下:CPen*SelectObject(Cpen*pPen);CBrush*SelectObject(CBrush*pBrush);virtualCFont*SelectObject(CFont*pFont);CBitmap*SelectObject(CBitmap*pBitmap);intSelectObject(CRgn*pRgn);現(xiàn)在是59頁\一共有86頁\編輯于星期二⑥DeleteObject()函數DeleteObject()函數可以刪除邏輯畫筆、畫刷、字體、位圖、區(qū)域或調色板對象,并釋放所有與該對象相關的系統(tǒng)資源,當對象被刪除之后,則指定的對象句柄將無效。其原型聲明如下:BOOLDelectObject(HGDIOBJhObject);現(xiàn)在是60頁\一共有86頁\編輯于星期二4、GDI對象GDI對象基類是CGdiObject。使用GDI對象時要注意以下兩點。①同其它MFC對象一樣,GDI對象的創(chuàng)建分為兩步:第一步定義一個GDI繪圖對象類的實例;第二步調用該對象的創(chuàng)建方法真正創(chuàng)建對象。②使用該對象時,首先要調用CDC::SelectObject(),將它選入到設備上下文中,同時保存原來的設置到一個GDI對象指針如pOldObject中。在使用完后,再用SelectObject(pOldObject)恢復原來的設置。但是,如果該設備上下文是用戶自己創(chuàng)建的,則不必恢復原來設置,因為框架會在該設備上下文生存期結束時刪除該設備上下文,同時也就刪除了原來存放于該設備上下文中的繪圖對象設置。具體應用參見下面的OnDraw函數。voidCMyProjectView::OnDraw(CDC*pDC){ …… CpenNewPen(PS_SOLID,1,RGB(0,0,0));//構造畫筆類對象//選擇新設備環(huán)境的同時,保存舊的繪圖對象到設備環(huán)境Cpen*pOldPen=pDC->SelectObject(&NewPen);……pDC->SelectObject(pOldPen);//恢復舊的繪圖對象……}現(xiàn)在是61頁\一共有86頁\編輯于星期二總之,設備環(huán)境(DC)和圖形設備接口(GDI)是實現(xiàn)計算機繪圖的兩個重要的組成部分,DC主要負責設置繪圖的狀態(tài)和方式,而GDI則主要負責設置所用的繪圖工具?,F(xiàn)在是62頁\一共有86頁\編輯于星期二2.6.2OnDraw成員函數VC++所編寫的Windows圖形應用程序通常是在視圖類中通過OnDraw函數中添加繪圖代碼完成圖形的生成。OnDraw函數是CView類中的一個虛擬成員函數,每當窗口需重繪時應用程序框架會調用它。函數原型如下:virtualvoidOnDraw(CDC*pDC);
下面的OnDraw函數是由AppWizard直接生成的:voidCMyProjectView::OnDraw(CDC*pDC){ CMyProjectDoc*pDoc=GetDocument();//獲取當前文檔指針ASSERT_VALID(pDoc);//檢查指針是否為空//TODO:adddrawcodefornativedatahere//下面可添加自己的程序代碼}現(xiàn)在是63頁\一共有86頁\編輯于星期二2.6.3GDI對象類GDI的基本繪圖對象類有:CBitmap類、CBrush類、CFont類、CPen類、CRgn類和CPalette類.它們都是CGdi0bject類的派生類?,F(xiàn)在是64頁\一共有86頁\編輯于星期二1、CPen類
(1)CPen類構造函數CPen的構造函數可創(chuàng)建繪圖對象。該類有3個構造函數:CPen();CPen(intnPenStyle,intnWidth,COLORREFcrColor);CPen(intnPenStyle,intmWidth,constLOGVRUSH*pLogBrush,intnStyleCount=0,constDWORD*lpStyle=NULL);該類封裝了Windows圖形設備接口畫筆,包含在“afxwin.h”頭文件中。畫筆是一種用來畫線及繪制有形邊框的工具,用戶可以指定它的顏色及寬度,并且可以指定它畫實線、點線或虛線。運用缺省畫筆畫的是一個像素寬的黑色實線?,F(xiàn)在是65頁\一共有86頁\編輯于星期二PS_SOLID創(chuàng)建一個實線畫筆
PS_DASH創(chuàng)建一個虛線畫筆,該值只有當畫筆寬度等于1個設備單位或更小時才有效
PS_DOT創(chuàng)建一個點線畫筆,該值只有當畫筆寬度等于1個設備單位或更小時才有效
PS_DASHDOT創(chuàng)建一個點和虛線交替畫筆,該值只有當畫筆寬度等于1個設備單位或更小時才有效
PS_DASHDOTDOT創(chuàng)建一個雙點線畫筆,該值只有當畫筆寬度等于1個設備單位或更小時才有效
畫筆風格:現(xiàn)在是66頁\一共有86頁\編輯于星期二(2)CPen類初始化成員函數
①調用CreatePen()成員函數
CreatePen()成員函數通過指定線型、線寬和顏色等畫筆屬性參數直接創(chuàng)建一個具有特定線型、線寬和顏色的畫筆對象,其原型聲明如下:
BOOLCreatePen(intnPenStyle,intnWidth,COLORREFcrColor);BOOLCreatePen(intnPenStyle,intnWidth,constLOGBRUSH*pLogBrush,intnStyleCount=0,constDWORD*lpStyle=NULL);
②調用CreatePenIndirect()成員函數
CreatePenIndirect()成員函數創(chuàng)建畫筆對象,其屬性并不是直接通過函數參數的形式給出的,而是通過LOGPEN結構的成員變量間接地給出。為了創(chuàng)建一個具有特定屬性的畫筆對象主要工作是重置LOGPEN結構的成員變量,該函數的原型聲明如下;
BOOLCreatePenIndirect(LPLOGPENlpLogPen);
參數lpLogPen是指向LOGPEN結構的指針,在該結構中有3個成員變量,分別用于指定畫筆的風格、寬度和顏色。LOGPEN結構的具體定義如下:
typedefstructtagLOGPEN{/*lgpn*/UNITlopnStyle;POINTlopnWidth;COLORREFlopnColor;}LOGPEN;現(xiàn)在是67頁\一共有86頁\編輯于星期二2、CBrush類該類封裝了Windows的GDI刷子,包含在“afxwin.h”頭文件中。CBrush類畫刷用來填充一個封閉圖形對象(如矩形、橢圓)的內部區(qū)域。缺省的畫刷將封閉圖形的內部填充成全白色。通過該類構造的CBrush對象可以傳遞給任何一個需要畫刷的CDC成員函數。該畫刷可以是實線、陰影線或某種圖案。(1)CBrush類構造函數該類具有4個重載的構造函數:CBrush();CBrush(COLORREFcrColor);CBrush(intnIndex,COLORREFcrColor);CBrush(CBitmap*pBitmap);現(xiàn)在是68頁\一共有86頁\編輯于星期二(2)CBrush初始化成員函數①調用CBrush::CreateSolidBrush()成員函數來初始化實畫刷,以便使用純色來填充區(qū)域內部.②調用CBrush::CreateHatchBrush()成員因數來初始化陰影畫刷,參數與構造函數中的參數完全相同。
BOOLCreateHatchBrush(intnIndex,COLORREFcrColor);③調用CBrush::CreatePatternBrush()成員函數來初始化一個圖形畫刷,當使用該畫刷填充圖形時,圖形內部將用位圖一個接一個的填充。該函數原型聲明如下:BOOLCreatePatternBrush(CBitmap*pBitmap);參數如前所述。使用圖形畫刷需要注意的是在刪除圖形畫刷時與畫刷相聯(lián)系的位圖并未被刪除,位圖必須被單獨地刪除。④調用CBrush::CreateBrushIndirect()成員函數來創(chuàng)建畫刷對象,畫刷的屬性并不是直接通過函數參數的形式給出的,而是通過LOGBRUSH結構的成員變量間接的給出的。該函數原型聲明如下:BOOLCreateBrushIndirect(constLOGBRUSH*lpLogBrush);程序演示現(xiàn)在是69頁\一共有86頁\編輯于星期二3、CFont類該類封裝一個Windows的圖形設備接口字體并且提供了操縱字體的成員函數,包含在“afxwin.h”頭文件中。字體CFont類是一種具有某種風格和尺寸的所有字符的完整集合,它常常被當作資源存于磁盤中,其中有一些還依賴于某種設備。要使用CFont對象,則需構造一個CFont對象并用成員函數CreateFont、CreateFontIndirect、CreatePointFont或CreatePointFontIndirect將一個Windows字體附加給它,然后用該對象的成員函數來操縱字體。CreatePointFont和CreatePointFontIndirect要比CreateFontIndirect好用,因為它們自動將字體高度從點大小變?yōu)檫壿媶挝弧,F(xiàn)在是70頁\一共有86頁\編輯于星期二4、CBitmap類(1)CBitmap類構造函數CBitmap類構造函數的原型為:CBitmap();它負責構造一個CBitmap對象。生成的對象必須用下面的成員函數進行初始化。(2)CBitmap對象的初始化成員函數①CreateBitmap(intnWidth,intnHeight,UINTnPlanes,UINTnBitcount,constvoid*lpBits)②BOOLLoadBitmap(LPCTSTRlpszResourceName);BOOLLoadBitmap(UINTnIDResoure);現(xiàn)在是71頁\一共有86頁\編輯于星期二2.7OpenGL程序設計基礎2.7.1OpenGL的主要功能2.7.2OpenGL繪圖程序開發(fā)方法現(xiàn)在是72頁\一共有86頁\編輯于星期二2.7.1OpenGL的主要功能1、OpenGL基本操作①繪制物體:真實世界里的任何物體都可以在計算機中用簡單的點、線、多邊形來描述。OpenGL提供了豐富的基本圖元繪制命令,從而可以方便地繪制物體。②變換:論多么復雜的圖形都是由基本圖元組成并經過一系列變換來實現(xiàn)的,OpenGL提供了一系列基本的變換,如取景變換、模型變換、投影變換及視口變換。③光照處理:正如自然界不可缺少光一樣,繪制有真實感的三維物體必須做光照處理。④著色:OpenGL提供了兩種物體著色模式,一種是RGBA顏色模式,另一種是顏色索引模式。⑤反走樣:在OpenGL繪制圖形過程中,由于使用的是位圖,所以繪制出的圖像的邊緣會出現(xiàn)鋸齒形狀,稱為走樣。為了消除這種缺陷,OpenGL提供了點、線、多邊形的反走樣技術。⑥融合:為了使三維圖形更加具有真實感,經常需要處理半透明或透明的物體圖像,這就要用到融合技術。⑦霧化:正如自然界中存在煙霧一樣,OpenGL提供了"fog"的基本操作來達到對場景進行霧化的效果。⑧位圖和圖像:在圖形繪制過程中,位圖和圖像操作是非常重要的一個方面。OpenGL提供了一系列函數來實現(xiàn)位圖和圖像的操作。⑨紋理映射:在計算機圖形學中,把包含顏色、alpha值、亮度等數據的矩形數組稱為紋理。紋理映射可以理解為將紋理粘貼在所繪制的三維模型表面,以使三維圖形顯得更生動。⑩動畫:出色的動畫效果是OpenGL的一大特色,OpenGL提供了雙緩存技術來實現(xiàn)動畫繪制,即在顯示前臺緩存中圖像的同時,后臺緩存繪制第二幅圖像;當后臺繪制完成后,后臺緩存中的圖像就顯示出來,此時原來的前臺緩存開始繪制第三幅圖像。如此循環(huán)往復,以增加圖像的輸出速度。現(xiàn)在是73頁\一共有86頁\編輯于星期二2、OpenGL函數及數據類型
OpenGL的庫函數分為4類:核心庫函數、實用庫函數、輔助庫函數和專用庫函數①核心庫函數:OpenGL有115個核心庫函數,均以“gl”作為前綴,它們提供了最基本的功能,比如實現(xiàn)三維建模、建立光照模型、反走樣和紋理映射等功能。②實用庫函數:OpenGL的實用庫函數有43個,以“glu”為前綴,它們在核心函數的上層。其實質是對核心函數進行組織和封裝,提供比較簡單的函數接口和用法,可減輕開發(fā)者的編程負擔。③輔助庫函數:OpenGL的輔助庫函數有31個,以“aux”為前綴。應用程序只能在Win32環(huán)境中使用這些函數,可移植性較差,在Windows應用程序中一般用于窗口管理、輸入輸出處理以及繪制一些簡單的三維形體。④專用庫函數:專用庫函數是由6個以“wgl”為前綴的函數和5個Win32API函數組成?!皐gl”函數用于連接Windows和OpenGL、初始化窗口,能夠使用OpenGL在窗口中進行繪制;Win32API函數是用于處理像素存儲格式、雙緩存等函數的調用。
OpenGL中函數的命名規(guī)則為“前綴——詞根——數字后綴——類型后綴”。前綴表明函數的類型;詞根為函數的功能描述;數字后綴可以是“2”、“3”、“4”,表明參數向量的維數;類型后綴可以是“b”、“i”、“f”等,表明函數參數的數據類型。例如函數“glColor3f”:“gl”表明這個函數屬于核心函數,“Color”表明它用來設置當前顏色,“3”表明函數需要3個參數,“f”表明函數的每一個參數都為浮點型數值。OpenGL定義的常量,都以GL開頭,并且所有字母都大寫,單詞之間以下劃線來分隔,例如GL_COLOR_BUFFER_BIT?,F(xiàn)在是74頁\一共有86頁\編輯于星期二3、OpenGL的緩沖區(qū)OpenGL進行圖形顯示時需要用到4個緩沖區(qū):顏色緩存、深度緩存、模板緩存和累積緩存。①顏色緩存顏色緩存由紅、綠、藍、alpha位平面組成,有前緩存、后緩存、左前緩存、右前緩存、左后緩存、右后緩存。其中左前緩存是必需的顏色緩存,前緩存是可見緩存、后緩存是不可見緩存。前后緩存技術可實現(xiàn)動畫操作。②深度緩存深度緩存也叫Z-buffer,記錄每個像素點所對應的物體點到視點的距離,由此決定表面的可見性,用于物體的消隱。③模板緩存和累積緩存模板緩存和累積緩存主要用于圖形的特殊效果會制。模板緩存存放像素的魔板制,用于控制像素是否被改寫,實現(xiàn)禁止在屏幕的某些區(qū)域繪圖。模板緩存可用于多種復雜圖形的繪制(凸/凹區(qū)域、凹多邊形等),屏蔽屏幕區(qū)域、遮擋物體、制作物體的交集等。累積緩存是一系列繪制結果的積累,可用來實現(xiàn)場景的反走樣、景深模擬和運動模糊等?,F(xiàn)在是75頁\一共有86頁\編輯于星期二2.7.2OpenGL繪圖程序開發(fā)方法利用VC++和OpenGL來開發(fā)繪圖程序,需要構造一個基于消息的Windows窗口,在這個窗口中使用OpenGL的函數進行繪制和渲染。有兩種構造窗口的方法,一種是應用OpenGL的GLU和AUX函數庫,另一種是使用VC++的MFC。使用輔助函數庫和使用MFC來構造應用程序框架的不同之處在于MFC應用程序是由Windows來分發(fā)消息,在消息響應函數中處理初始化、設置繪圖場景和繪制圖形的工作;而使用輔助庫則是編寫回調函數,然后在主函數中使用auxReshapeFunc和auxMainLoop調用回調函數來實現(xiàn)消息的循環(huán)。現(xiàn)在是76頁\一共有86頁\編輯于星期二舉例說明用VisualC++開發(fā)OpenGL繪圖程序開發(fā)方法1、利用OpenGL的GLU和AUX函數庫來實現(xiàn)顏色漸變三角形的繪制及渲染的功能①新建工程在VC++中的“File”菜單中選擇“New”命令,在彈出的對話框中選擇項目的類型為“Win3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 非營利組織2025年工作總結與發(fā)展計劃
- 2025年墨汁及類似品合作協(xié)議書
- 2025年部編版八年級語文主題教學計劃
- 人機交互設計中的人體因素分析
- 幕墻施工質量監(jiān)測與評估措施
- 企業(yè)信息化管理與技術創(chuàng)新研究
- 視膜分支靜脈阻塞護理查房
- 優(yōu)化六年級數學學習的復習計劃
- 企業(yè)融資方式的創(chuàng)新與實踐
- IT公司項目管理辦公室工作流程
- 110kv線路電氣初步設計輸電線路說明書
- 2022公務員錄用體檢操作手冊(試行)
- 配電網工程典型設計10kV配電變臺分冊
- 活性炭生產工藝流程圖
- 廣東省食品安全管理人員必備知識考試題庫附答案(餐飲類)
- 部編版四年級語文下冊第3單元大單元整體教學設計(課件配套)
- 高層辦公建筑空調設計冷負荷與全年耗冷量模擬
- LTC流程介紹完整版
- 部編人教版三年級道德與法治下冊全冊課件
- JJF 1952-2021X射線熒光測硫儀校準規(guī)范
- JJF 1445-2014落錘式沖擊試驗機校準規(guī)范
評論
0/150
提交評論