版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、opengl (open graphics library)定義了一個(gè)跨編程語言、跨平臺(tái)的編程接口 的規(guī)格,是個(gè)專業(yè)的圖形程序接口,是一個(gè)功能強(qiáng)大,調(diào)用方便的底層圖形庫。 它是行業(yè)領(lǐng)域中最為廣泛接納的2d/3d圖形api,其門誕生至今已催生了各種 計(jì)算機(jī)平臺(tái)及設(shè)備上的數(shù)千優(yōu)秀應(yīng)用程序。它是獨(dú)立于視窗操作系統(tǒng)或其它操作 系統(tǒng)的,亦是網(wǎng)絡(luò)透明的。在包含cad、內(nèi)容創(chuàng)作、能源、娛樂、游戲開發(fā)、制 造業(yè)、制藥業(yè)及虛擬現(xiàn)實(shí)等行業(yè)領(lǐng)域中,opengl幫助程序員實(shí)現(xiàn)在pc、工作站、 超級(jí)計(jì)算機(jī)等硬件設(shè)備上的高性能、極貝沖擊力的高視覺表現(xiàn)力圖形處理軟件的 開發(fā)。一、圖形標(biāo)準(zhǔn)opengl及其高級(jí)開發(fā)工具圖形標(biāo)準(zhǔn)
2、在圖形領(lǐng)域有著重要的地位,是很多大公司與機(jī)構(gòu)爭奪的法寶。歷史上 曾出現(xiàn)的圖形標(biāo)準(zhǔn)有 core、gks、phigs、pex、gl、dore、renderman> hoops、 opengl等等。經(jīng)過了競(jìng)爭與淘汰,r nu opengl占據(jù)了領(lǐng)導(dǎo)地位,成為國際上公 認(rèn)的3d圖形工業(yè)標(biāo)準(zhǔn)。sgi公司是贏家,它于1990年著手研制openglo 1992 年opengl體系結(jié)構(gòu)委員會(huì)制定了 10規(guī)范,1995年推出1. 1規(guī)范。1998年opengl1. 2在sgi平臺(tái)實(shí)現(xiàn)oopengl及其應(yīng)用程序已在unix與pc平臺(tái)得到廣泛的應(yīng)用。 圖形標(biāo)準(zhǔn)存在顯而易見的優(yōu)點(diǎn):它不僅加速了 31)應(yīng)用程序的
3、開發(fā),而且使應(yīng)用 程序的可移植性更好。但是標(biāo)準(zhǔn)亦存在著缺點(diǎn),andries van dam指fl;:"標(biāo)準(zhǔn) 是很多人經(jīng)過多年的努力共同創(chuàng)建的,它的規(guī)范與實(shí)現(xiàn)總是落后于最新技術(shù)。經(jīng) 驗(yàn)表明,絕大多數(shù)領(lǐng)域最先進(jìn)的設(shè)計(jì)都是極小數(shù)精英小組創(chuàng)作的,但是標(biāo)準(zhǔn)卻是 一個(gè)龐大委員會(huì)的技術(shù)、政治折衷的產(chǎn)物” dam 1998 oopengl的發(fā)展已近10年,從1. 0版木到1. 2版木在功能上并無顯著的變化。在 開發(fā)交互式3d圖形應(yīng)用程序方面,opengl存在明顯的不足:(1)opengl與窗口系統(tǒng)無關(guān),不提供任何交互手段,必須由程序員自己編寫所 有的交互功能。(2)opengl應(yīng)用程序性能的優(yōu)化是程
4、序員面臨的一大困難。opengl的api (編 程接口)非常靈活,不僅針對(duì)碩件與軟件的優(yōu)化方法多而相異,即便對(duì)于同一數(shù) 據(jù)結(jié)構(gòu)或算法,如果代碼的組織不同亦會(huì)產(chǎn)生顯著的性能茅異。(3)opcngl的api是低級(jí)的c函數(shù),不提供可復(fù)用的對(duì)象庫或者應(yīng)用程序框架, 開發(fā)效率不高。以上幾點(diǎn)表明,除非開發(fā)人員既精通圖形系統(tǒng)又精通窗口系統(tǒng)的編程,否則難以 開發(fā)出較好的基于opengl的交互式3d應(yīng)用程序。由于標(biāo)準(zhǔn)不能被輕易創(chuàng)建與修 改,它往往跟不上技術(shù)的發(fā)展與市場(chǎng)的變化。而3d圖形是迅猛發(fā)展的領(lǐng)域,為 了克服這個(gè)困難,人們往往在圖形標(biāo)準(zhǔn)z上再建立更高級(jí)的開發(fā)工具(3dtoolkit 或 3d enginc)
5、o 基于opengl的著名的開發(fā)工具有:1、 open invcntoropen inventor是從sgi的iris inventor發(fā)展而來,適合于開發(fā)面向?qū)ο蟮慕?互式3d圖形應(yīng)用程序。其核心是圍繞scene graph的龐人的c+類庫,它提供 場(chǎng)景編輯、交互式繪制、文件輸入輸出等功能以及相應(yīng)的圖形用戶界面。open inventor是通用的商業(yè)化軟件,tl open inventor體系結(jié)構(gòu)委員會(huì)制定標(biāo)準(zhǔn), 可以在多個(gè)平臺(tái)運(yùn)行。pc平臺(tái)的open inventor由tgs公司開發(fā)與銷售。 wcrncckc 1994 wang 1997open inventor的基木特征是“大而全”,如
6、果你只要開發(fā)很小的3d應(yīng)用程序, 使用open inventor就象讓相撲運(yùn)動(dòng)員去干針線活那樣笨。2> iris performeriris performer是高性能實(shí)時(shí)3d圖形開發(fā)系統(tǒng),由sgi公司研制,專用于sgi 的高檔圖形工作站。iris performer提供高層的場(chǎng)景結(jié)構(gòu),支持多cpu、場(chǎng)景 多層次細(xì)節(jié)(lod)管理。不提供用于3d交互的圖形用戶界面。rohlf 1994 iris performer我只聽說過但沒有親手用過??偨y(tǒng)套房好是好,可老百姓住不 起。3、opengl optimcizcr/cosmo3dopengl optimcizer/cosmo3d是面向大型c
7、ad/cae與可視化應(yīng)用的開發(fā)系 統(tǒng),由sgi公司研制。它可以將大型復(fù)雜的造型簡化,并快速地繪制。但由于該 產(chǎn)品推出的時(shí)間不長,短期內(nèi)難以被廣泛采納。peiul 1997所有的新產(chǎn)品都說口己好并且對(duì)用戶“必不可少”,但用戶總免不了疑神疑 鬼,還是等它成熟了再用。4、glutglut的核心是個(gè)小型的c函數(shù)庫,這些函數(shù)可以創(chuàng)建opengl窗口、彈出菜單、 響應(yīng)鼠標(biāo)事件,并可以繪制簡單的常見幾何形體。gixt可在x-window, windows nt, os/2等系統(tǒng)卜運(yùn)行,特別適合于開發(fā)不需要復(fù)雜界面的opengl示例程序。glut的源程序是公開的,并且提供了百余個(gè)出色的示例程序,可幫助用戶進(jìn)一
8、 步了解 openglo paul 1997 kilgeird 1996由于open inventor在unix與pc平臺(tái)得到了廣泛的應(yīng)用,被譽(yù)為是交互式3d 開發(fā)工具的“事實(shí)標(biāo)準(zhǔn)”。但顯然沒有一個(gè)3d開發(fā)工貝能滿足所有的應(yīng)用需求, 3d的廣泛應(yīng)用需要更多的開發(fā)工具支持。冃前在internet上可以搜索到的各種 用途的31) engine有500多個(gè)engines, open inventor可以更精確地歸類于uobject oricnted drawing and documcnt editing system" kochhar 1996。二、基于opengl的交互式三維圖形軟件開
9、發(fā)工具1、intra3d 2.0開發(fā)背景隨著計(jì)算機(jī)圖形技術(shù)與網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,兩者的結(jié)合勢(shì)在必行。在商業(yè)、科 研、教育、娛樂等領(lǐng)域,用于分布式虛擬壞境和支持協(xié)同工作的圖形系統(tǒng)已成為 研究與應(yīng)用的熱點(diǎn)著名的dves系統(tǒng)有dive、dvs、mr、repo-3d等。但是這些 dves系統(tǒng)缺乏3d開發(fā)工具的交互式圖形功能以及通用性,而通用的3d開發(fā)工 具如open inventor則又不支持分布式計(jì)算和協(xié)同工作。由于在窗口系統(tǒng)、圖形 支撐庫、編程語言等方面存在差異,上述dves系統(tǒng)和3d開發(fā)工具難以方便地結(jié) 合使用。為了緊跟發(fā)展潮流,intra3d 2. 0 款基于opengl的交互式三維圖形 軟件
10、開發(fā)工具應(yīng)運(yùn)而生。2、intra3d 2.0數(shù)據(jù)流可視化平臺(tái)intra3d 2.0多方面分析了 3d的需求及軟硬件條件研制完成了 主版權(quán)、運(yùn) 行于pc平臺(tái)的“交互式協(xié)同式三維圖形軟件開發(fā)系統(tǒng)與數(shù)據(jù)流可視化平臺(tái)”如 圖1. 1所示,其中:(1) intra3d 2. 0是基于opengl的交互式三維圖形軟件開發(fā)工具,可用于快速 開發(fā)window 9x/nt下的交互式三維圖形應(yīng)用軟件。(2) dvl 2. 0是基于opengl的數(shù)據(jù)可視化工貝庫,主耍用于繪制科學(xué)計(jì)算數(shù)據(jù) 和商業(yè)統(tǒng)計(jì)圖形。結(jié)合intra3d 2. 0和dvl 2. 0可以快速開發(fā)交互式數(shù)據(jù)可視化 應(yīng)用軟件。(3) cnc 2.0是用
11、于協(xié)同工作的網(wǎng)絡(luò)通訊開發(fā)系統(tǒng),其核心是支持“發(fā)布一訂 閱模式”和“數(shù)據(jù)流模式”的類庫。結(jié)合intra3d 2.0、dvl 2.0和cnc 2.0, 可以快速開發(fā)支持協(xié)同工作的交互式三維圖形與數(shù)據(jù)可視化應(yīng)用軟件。(4) give+是“分布式數(shù)據(jù)流可視化平臺(tái)”。用戶從give+中選取模塊,以“搭 積木”的方式將齊個(gè)模塊用數(shù)據(jù)流連接起來,z后用戶就可以直觀地控制這些模 塊的運(yùn)行。如果用戶在give+中找不到需要的模塊,可以使用intra3d2.0、dvl 2. 0和cnc 2. 0來開發(fā)該模塊,把開發(fā)完成的模塊添加到give+的模塊庫中即可。pc + windows 9x/nt圖1.1交互式協(xié)同式的
12、三維圖形軟件開發(fā)系統(tǒng)與數(shù)據(jù)流可視化平臺(tái) 3、intra3d 2. 0設(shè)計(jì)思想圖1.1的方案充分體現(xiàn)了 “大規(guī)模復(fù)用”和“分而治z”的軟件工程思想。如杲 按工作量劃分比例,那么intra3d 2.0約占40%, dvl 2.0約占10%, cnc 2.0 約占25%, give+約占25%o intra3d2.0是上述方案中最重要的軟件開發(fā)工具。 在設(shè)計(jì)intra3d 2. 0時(shí),分析過百余個(gè)opcngl應(yīng)用程序,借鑒了 open inventor 與 optimeizer/cosmo3d 的設(shè)計(jì)優(yōu)點(diǎn)。以卜是 intra3d 2. 0 與 open inventor 的 主要不同點(diǎn):(1) 體系
13、結(jié)構(gòu)不同。open inventor是圍繞scene graph 發(fā)的,可稱大而全, 但其很多功能在圖1.1方案中不實(shí)用也不必需。int“3d 2. 0分四層設(shè)計(jì),每層 少而精,擴(kuò)展靈活,切合圖1. 1的方案。(2) intra3d 2. 0 提供 c+類庫與 com (component object model)庫,支持 visual c+、visual basic. delphi編程。這種多語言編程是現(xiàn)代pc應(yīng)用開發(fā) 的一個(gè)特征。而open inventor是從sgi的iris inventor發(fā)展而來的,由于需 求背景不同,open inventor不具備intra3d 2.0這種特征
14、。(3) intra3d 2. 0是個(gè)免費(fèi)軟件,所有源代碼向用戶開放。intra3d 2. 0的內(nèi)核 用visual c+編寫,其c+類庫與com庫各有60余個(gè)模塊,共有7萬多行代碼。 由于intra3d 2.0是分層設(shè)計(jì)的,用戶可以方便地修改內(nèi)核以適應(yīng)不同的需求。 open inventor是商業(yè)軟件,不免費(fèi)、不公開源代碼。4 intra3d 2. 0的主要模塊與功能4.1、基礎(chǔ)對(duì)象與函數(shù)層(1) 定義了用于對(duì)象引用計(jì)數(shù)的內(nèi)存管理基類;(2) 矢量、矩陣與四元組運(yùn)算,鼠標(biāo)跟蹤球算法;(3) 點(diǎn)陣字體與三維矢量字體輸出,常用于數(shù)據(jù)可視化圖形的數(shù)據(jù)標(biāo)注;(4) 圖像輸入輸出以及紋理映射,支持bm
15、p、gif、jpeg、sgi、tga等圖像格式;(5) 常用幾何圖元的繪制,如錐、柱、球、環(huán)等,并支持swept形體,螺旋體 的繪制;(6)提供450余種材質(zhì),在第四層中可以交互式編輯這些材質(zhì)。4.2、圖形對(duì)象層圖形對(duì)象能將數(shù)據(jù)轉(zhuǎn)化為幾何模型并可以繪制出來。int“3d 2. 0版提供了三類 圖形對(duì)象:(1)常用幾何對(duì)象,如長方體、錐體、圓柱體、球體、圓環(huán)體、swept形體等;(2)多邊形模型對(duì)象,用丁-繪制autodesk公司3ds模型和wavefront公司 的obj模型;(3)商業(yè)統(tǒng)計(jì)圖形對(duì)象,如柱形圖、帶狀圖、條形圖、折線圖、面積圖、餅圖、 塔形圖、曲線圖、曲面圖、進(jìn)程圖、股票圖等。圖
16、形對(duì)象的開發(fā)與應(yīng)用問題密切相關(guān),用戶可以使用繼承方法擴(kuò)充新的圖形對(duì) 象,而不會(huì)影響到其它三層的構(gòu)件。4.3、場(chǎng)景圖與節(jié)點(diǎn)層場(chǎng)景圖是有向無壞圖主要節(jié)點(diǎn)有:(1)sccncnodc是所有節(jié)點(diǎn)的基類。在sccncnodc中定義了局部坐標(biāo)系以及相 應(yīng)的圖形變換,這樣便于第四層以同樣的操作方式實(shí)現(xiàn)三維交互。(2)相機(jī)節(jié)點(diǎn)支持平行投影與透視投影,支持多個(gè)相機(jī)切換。(3)光源節(jié)點(diǎn)有三種:平行光源節(jié)點(diǎn)、點(diǎn)光源節(jié)點(diǎn)和錐光源節(jié)點(diǎn)。(4)形體節(jié)點(diǎn)(shapcnodc)用于引用圖形對(duì)象,有關(guān)圖形對(duì)象的三維交互均由 sheipenode 處理。4.4、繪制與交互層intra3d 2. 0的交互分兩類:一類是對(duì)形體、光源
17、和相機(jī)的宜接操作,另一類是 真實(shí)感屈性的編輯。intra3d的場(chǎng)景視窗構(gòu)件封裝了交互式繪制的所有細(xì)節(jié),如 消息處理、場(chǎng)景節(jié)點(diǎn)的遍歷繪制、多重采樣消鋸齒、鼠標(biāo)交互等。為了便于編輯 真實(shí)感屬性,intra3d 2. 0定制了一些常用對(duì)話:矢量字體對(duì)話、顏色對(duì)話、材 質(zhì)庫對(duì)話、材質(zhì)對(duì)話與光源對(duì)話。5編譯壞境設(shè)置intra3d 2. 0 的 c+ 類庫與 com 庫均用 visual c+ 6. 0 開發(fā)。5. 1、制作c+類庫c+ 類庫的工程文件 intra3d. dsp 位于 intra3dsourceintra3d-dll 冃錄卜。為了正確編譯,應(yīng)將visual c+ options菜單的dir
18、ectories屬性設(shè)置如下:(1 ) include 厲性添加 intra3dsourccintra3d-dll 與 intra3dsourceintrci3d-dll include;(2) lib 屬性添加 intra3dsourceintra3d-dllo在制作release版本時(shí),在工程文件中添加intra3d. def文件。在制作debug 版本時(shí),在工程文件中添加intra3d_d. def文件。最后應(yīng)將編譯生成的.dll 與lib文件復(fù)制到intra3dlib目錄下。5.2、制作com庫intra3d. ocx 的工程文件 intra3d. dsp 位于 intra3dsourceintra3d-com 目錄卜。為了正確編譯,應(yīng)將visual c+
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 美食行業(yè)廚師助理工作總結(jié)
- 質(zhì)量管理在研發(fā)流程中的作用培訓(xùn)
- 藥店衛(wèi)生整頓要領(lǐng)
- 部編初中歷史八下第17課外交事業(yè)的發(fā)展教案
- 2025年全球及中國商用儲(chǔ)水式熱水器行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年全球及中國推拉式酸洗線行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球第三人稱射擊游戲行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國新能源汽車隱形門把手行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球基于人工智能的傷口護(hù)理軟件行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國高舉裝載機(jī)行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 長江委水文局2025年校園招聘17人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年湖南韶山干部學(xué)院公開招聘15人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 智研咨詢發(fā)布:2024年中國MVR蒸汽機(jī)械行業(yè)市場(chǎng)全景調(diào)查及投資前景預(yù)測(cè)報(bào)告
- IF鋼物理冶金原理與關(guān)鍵工藝技術(shù)1
- JGJ46-2024 建筑與市政工程施工現(xiàn)場(chǎng)臨時(shí)用電安全技術(shù)標(biāo)準(zhǔn)
- 煙花爆竹重大危險(xiǎn)源辨識(shí)AQ 4131-2023知識(shí)培訓(xùn)
- 銷售提成對(duì)賭協(xié)議書范本 3篇
- EPC項(xiàng)目階段劃分及工作結(jié)構(gòu)分解方案
- 《跨學(xué)科實(shí)踐活動(dòng)4 基于特定需求設(shè)計(jì)和制作簡易供氧器》教學(xué)設(shè)計(jì)
- 2024-2030年汽車啟停電池市場(chǎng)運(yùn)行態(tài)勢(shì)分析及競(jìng)爭格局展望報(bào)告
- 術(shù)后病人燙傷不良事件PDCA循環(huán)分析
評(píng)論
0/150
提交評(píng)論