黄色三级片无码高清-一级国产黄色片传媒-下载日韩一级黄色片-国产黄片卡片一级-看三四级黄色毛片-国产一级爱做c片免费-欧美一级电影播放观看-日韩一级视频在线看-成人簧片一级AAA片

【請登錄】【免費注冊】

首頁新聞技術產品供應二手培訓展會物流維修求購招商招標招聘企業

技術

搜索
技術文章機械知識技術技巧論文試題維修知識招投標知識
您的位置:盤古機械網>技術文章>機械知識>詳情

用OpenGL開發虛擬制造環境

時間:2009年04月16日瀏覽:464次收藏分享:

  摘 要 本文介紹了幾何圖形信息的數據結構、存儲與顯示基本原理。從應用程序角度論述Windows圖形設備接口GDI的客戶服務器本質及虛屏幕顯示技術。最后講述OpenGL圖形庫在虛擬制造仿真的應用基礎。
  關鍵詞 虛擬制造,客戶/服務器,OpenGL圖形庫
1 計算機圖形
1.1 幾何圖形信息的數組結構
  圖形顯示是從點的顯示開始的。線段是所有在它上面的點的集合。幾何學上的點是沒有大小的。線段的顯示實際上用有限個點來產生圖形,因而每個點都有一定的大小。此時的點不再是真正的幾何點,而是像素(圖像基本元素)。每個像素是顯示屏上可以編址的最小單元,也是在顯示屏上能夠被控制的最小部分。顯示屏如同由像素組成的二維數組。每個像素對應數組的一個元素。每個像素有一個地址,對應數組的下標。像素亮度值對應元素值。設定顯示屏上每一像素的亮度可以產生一幅圖像。 
1.2 幾何圖形信息的存儲
                     
                     圖1 幀緩沖器與圖像顯示
  一幅圖像是由有限數量的像素組成。一個分辨率較高的顯示設備若在x和y方向各有1000個像素,則這個顯示屏將含有100萬個像素。為了顯示每一點的亮暗,每一像素至少需要1比特的亮度信息,其存儲空間至少需要100萬/8個字節。用來存儲像素亮度數組的存儲器稱為幀緩沖器。幀緩沖器是指顯視卡上的顯視存儲器。
1.3 幾何圖形信息的顯示
  光柵顯示是用得較多的圖形顯示方法。光柵顯示是利用掃描發生器每秒鐘掃描幀緩沖器30到60次,將代表像素亮度的信息一行一行取出,然后送往顯示器。幀緩沖器的存取地址與光柵掃描信號同步地產生。幀緩沖器的內容用來輸出視屏信號控制陰極射線管電子束強度。強度大小決定像素的顯示明暗。幀緩沖器地址用來輸出水平與垂直偏轉信號控制陰極射線管電子束的偏轉。電子束的偏轉決定像素的屏幕坐標(x,y)。每一次掃描幀緩沖器都使屏幕得到刷新。由于光柵顯示系統利用直接存儲器存取(DMA)硬件不斷地掃描幀緩沖器,并把圖形顯示出來,因而圖像生成不受中央處理器(CPU)控制。
1.4 顯示設備驅動程序與應用程序的可移植性
  應用中,應用程序編寫的幾何圖形信息不是直接改變幀緩沖器的內容而是作為標準顯示指令存入顯示文件中,然后利用顯示設備驅動程序解釋顯示指令以產生需要的圖象。顯示文件驅動程序形成圖形應用程序與顯示設備之間的接口。若應用程序可以產生標準顯示文件代碼,那么每個帶有驅動程序的具體顯示設備就能正確地運行應用程序,從而提高了應用程序的可移植性。顯示設備與顯示驅動程序通常由硬件商一起提供。
1.5 應用程序圖形顯示步驟
  幀緩沖器數組直接與顯示屏內容相對應,并且以亮度編碼的形式保存了被顯示的圖形。圖形應用程序的實現步驟包括:首先由初始化程序分配顯示設備和存儲器。其次應用程序把圖形信息寫入幀緩沖器,由幀緩沖器直接傳送到顯示設備。空幀緩沖器對應空白的顯示屏。最后由結束圖形程序釋放顯示設備包括重新分配存儲器。
2 Windows環境下的圖形顯示
2.1 Windows環境下的虛屏顯示

  在MS-DOS應用中,圖形和文本程序不僅常常直接寫到視屏上,而且這樣做時經常繞過BIOS屏幕調用。然而在Windows環境下避免了這種狀況。首先在多任務Windows環境下物理視屏是一個共享資源。所有應用程序的顯示活動,都必須通過Windows API函數來操作。任何試圖繞過API函數都視為擾亂系統的行為。其次在Windows環境下屏幕操作根本不寫到物理視屏上,即使使用API函數時也是這樣。應用程序請求寫文本或圖形的操作,都是將信息寫到虛擬屏幕也稱為設備環境DC。最后Windows把虛擬屏幕映像到物理顯示屏上。
2.2 圖形用戶接口(GDI)的客戶/服務器本質
  Windows將應用程序從具體輸出設備中分離出來。在MS-DOS中,應用程序負責為所有輸出設備編程。Windows應用程序不負責對輸出設備編程。圖形用戶接口GDI為應用程序提供了一套獨立于設備的標準繪圖指令集。對于添加的新硬件,由硬件制造商提供驅動程序,而應用程序則通過GDI創建并維護設備環境(DC)。Win32應用程序在Windows95環境下都被分隔成了用戶模式與核心模式。在用戶模式下禁止直接取用圖形設備資源,而是交給操作系統核心模式來完成。這種模式稱為GDI的客戶/服務器模式如圖2。GDI的客戶/服務器模式有效地將應用程序彼此分離,從而提高了Windows 環境的安全特性。而且任何訪問輸出設備的函數都留在GDI的服務器方,從而保證了入侵應用程序不能直接訪問到其它應用程序的屏幕數據。
                   
                             圖2
3 OpenGL應用程序的圖形支持
3.1 OpenGL圖形軟件在應用中的地位
  OpenGL是SGI公司的IRIS GL圖形工作站的分支。近年來,作為工業標準圖形程序庫,在CAD/CAM等需要高級的三維對象可視化和圖形繪制領域得到廣泛應用。OpenGL為應用程序員提供了程序和圖形輸入輸出設備之間的功能接口,定義了一個獨立于語言的圖形核心系統。編寫應用程序過程中,用符合語言的約定方式把OpenGL嵌入到相應的語言之中。OpenGL在圖形應用中的地位如圖3所示。由于OpenGL本身與硬件及操作系統的底層軟件無關,從而使圖形應用程序獲得較高的可移植性。
               
                           圖3
3.2 OpenGL客戶/服務器圖形顯示方式
  OpenGL通過客戶/服務器方式實現圖形顯示。應用程序作為客戶工作并調用OpenGL API。OpenGL客戶模塊同OpenGL服務模塊通信并發出應用程序的OpenGL命令。OpenGL服務模塊調用Win32設備驅動接口來使用驅動程序。一個OpenGL服務程序往往同時維護幾個OpenGL環境。OpenGL環境是OpenGL客戶所處的OpenGL狀態。OpenGL環境又叫著色環境,是OpenGL與Windows系統之間的橋梁。所有的OpenGL調用都通過著色環境來完成。 OpenGL著色環境與設備環境有相同的像素格式。在為一個設備環境設置好了像素格式后就可以產生一個與之接近的著色環境。通過給出的設備環境,著色環境就可以在設備環境指出的設備上繪圖。其邏輯模式如圖4。
                 
                           圖4

  用OpenGL去著色一個Windows窗口的典型操作過程如下:
  . 建立正確的窗口格式;
  . 建立像素格式;
  . 創建設備環境;
  . 創建一個著色環境;
  . 將著色環境設為一個線程的當前著色環境;
  . 線程進行有關OpenGL的初始化;
  . 線程調用OpenGL著色函數;
  . 當OpenGL處理結束后,將著色環境設為非當前使用的(斷開與著色環境的聯系);
  . 釋放著色環境與設備環境。

熱門文章

業務咨詢:932174181   媒體合作:2279387437    24小時服務熱線:15136468001 盤古機械網 - 全面、科學的機械行業免費發布信息網站 Copyright 2017 PGJXO.COM 豫ICP備12019803號