国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Open Inventor在VS2005中的環(huán)境搭建與開發(fā)研究

2012-04-29 23:23:00趙云
電腦知識(shí)與技術(shù) 2012年21期

趙云

摘要:Open Inventor(OVI)是基于OpenGL的面向?qū)ο蟮拈_發(fā)三維圖形軟件開發(fā)包,可以用它快速、簡(jiǎn)潔地開發(fā)出各種類型的交互式三維圖形軟件。首先介紹了OVI的體系結(jié)構(gòu),然后詳細(xì)研究、討論了使用OVI開發(fā)程序的步驟以及在VS2005下開發(fā)OVI程序的環(huán)境搭建步驟,最后以一個(gè)簡(jiǎn)單程序說(shuō)明使用OVI開發(fā)交互式三維圖形軟件的簡(jiǎn)單、快捷,并證明在VS2005下搭建OVI開發(fā)環(huán)境的正確性。

關(guān)鍵詞:交互式三維圖形軟件;OVI;OpenGL;VS2005

中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)21-5187-05

Open Inventor to Build Research and Development Environment in VS2005

ZHAO Yun

(Chongqing Normal University, Information and Technology Center, Chongqing 40047,China)

Abstract:This paper introduces Open Inventors architecture. Researches the steps of program based on OVI and construction of program environment in VS2005.Developes a program based on OVI to prove the OVIs strong point in developing interactive 3D graphics pro? grams.

Key words: interactive 3D graphics software;OVI;OpenGL;VS2005

節(jié)點(diǎn)工具包是一些按照某種規(guī)則組合在一起的節(jié)點(diǎn)集。它有助于創(chuàng)建協(xié)調(diào)一致的場(chǎng)景數(shù)據(jù)。

操作器是一種特殊類型的節(jié)點(diǎn),可以響應(yīng)用戶產(chǎn)生的事件,比如用戶可以在屏幕上通過(guò)鼠標(biāo)直接操作它。通常,操作器帶有外觀形狀,而且都提供了將事件轉(zhuǎn)換進(jìn)數(shù)據(jù)庫(kù)中的方法。操作器為應(yīng)用程序提供了一種與3D物體間直接進(jìn)行交互作用的簡(jiǎn)便方法。

OVI還可以通過(guò)內(nèi)建的3D交換文件格式,在應(yīng)用程序之間進(jìn)行數(shù)據(jù)交換。操作3D應(yīng)用程序的用戶可以通過(guò)剪切、粘貼場(chǎng)景中的3D對(duì)象,與桌面上的其它程序共享這些對(duì)象數(shù)據(jù)。

2.1 Open Inventor程序的開發(fā)思想

OVI為程序員提供了類似MFC類庫(kù)的框架,而不像OpenGL直接調(diào)用API的方式進(jìn)行3D應(yīng)用程序開發(fā)。OVI包括許多節(jié)點(diǎn)組件,程序員在不同類型的節(jié)點(diǎn)中設(shè)置3D物體、表面材質(zhì)、形狀描述、幾何變換、燈光或照相機(jī)等信息,然后將這些節(jié)點(diǎn)作為“積木塊”,在程序中有機(jī)地組織起來(lái),就可高效地開發(fā)出可交互的3D程序。而大量的程序初始化、3D圖像繪制、3D圖形渲染、消息處理、與用戶交互等復(fù)雜的工作對(duì)于程序員來(lái)說(shuō)都是透明的,由OVI的底層機(jī)制自動(dòng)完成。

2.2 Open Inventor程序的開發(fā)步驟

通常情況,在VS2005中開發(fā)OVI步驟主要包括四個(gè)步驟:

步驟一初始化窗口和視口:

一個(gè)3D圖形要顯示,必須依賴于窗口。通常程序員需要初始化一個(gè)系統(tǒng)窗口,并在該系統(tǒng)窗口中初始化視口,以便圖像在該視口中顯示。這里的視口可以使用渲染場(chǎng)景的窗口類SoWinRenderArea(渲染區(qū)),也可以使用觀察器組件SoWinExaminerViewer。

步驟二建立場(chǎng)景:

場(chǎng)景是由許多不同的節(jié)點(diǎn)組成。首先需要建立場(chǎng)景的根節(jié)點(diǎn),然后創(chuàng)建比如3D物體、表面材質(zhì)、形狀描述、幾何變換等節(jié)點(diǎn),接下來(lái)設(shè)置這些節(jié)點(diǎn)信息,然后加入場(chǎng)景,形成場(chǎng)景節(jié)點(diǎn)樹。

步驟三遍歷渲染場(chǎng)景:

在程序中,使用OVI的幾條簡(jiǎn)單的語(yǔ)句,從場(chǎng)景的根節(jié)點(diǎn)開始,遍歷所有節(jié)點(diǎn),根據(jù)各節(jié)點(diǎn)的信息渲染3D圖形,并顯示在視口中。而遍歷的方式以及渲染的細(xì)節(jié),對(duì)于開發(fā)人員來(lái)說(shuō)都是是透明的。

步驟四回收資源退出:

程序結(jié)束,需要將場(chǎng)景數(shù)據(jù)庫(kù)資源和視口資源釋放。

讀者可根據(jù)該文的第四部分詳細(xì)體會(huì)OVI開發(fā)的這4個(gè)主要步驟。

目前工業(yè)界中比較成熟和典型的OVI包有三種:SGI的OVI,TGS的OVI,SIM的OVI。OVI最早由SGI提出并開發(fā),其OIV主要用在UNIX操作系統(tǒng)下。TGS公司最早將OIV由Unix系統(tǒng)移植到Microsoft Windows下,它是目前世界上使用最多的OIV版本,但其屬于商業(yè)軟件包,版權(quán)費(fèi)用昂貴,不適合普通用戶學(xué)習(xí)和使用。SIM公司開發(fā)的Coin3D OIV可以同時(shí)在UNIX和Microsoft Windows下使用。雖然它的功能和性能沒有TGS的OVI強(qiáng)大,但開發(fā)一般的3D應(yīng)用程序綽綽有余。而且它是一個(gè)開源的OIV開發(fā)包,可以讓初學(xué)者了解OIV內(nèi)部運(yùn)行的機(jī)理,更適合普通用戶學(xué)習(xí)和使用。

接下來(lái)我們使用SIM公司的Coin3D OVI,詳細(xì)研究、討論在VS2005中搭建OVI的具體操作步驟。

步驟一安裝VS2005:

Microsoft公司的VS2005安裝是可視化、一鍵式的,非常方便輕松,這里不多作討論。

步驟二下載并安裝Coin3D:

Coin3D是SIM公司的OVI圖形庫(kù),可以在地址[3]中下載。該地址有許多版本的Coin3D。如果下載的是可安裝文件,就直接安裝,然后檢查系統(tǒng)環(huán)境變量COINDIR和PATH是否分別是:Coin3D安裝目錄、Coin3D安裝目錄in。如果下載的不是安裝文件,將其解壓到某個(gè)目錄下,而且還需手動(dòng)設(shè)置系統(tǒng)環(huán)境變量COINDIR和PATH。這里因?yàn)閂S2005中的VC版本是8.0,因此下載Coin-3.1.0-bin-msvc8.zip。它沒有安裝文件,將其解壓到D盤(這里用戶可以任意解壓到一個(gè)目錄)Coin-3.1.0-bin-msvc8目錄,然后設(shè)置COINDIR和PATH兩個(gè)系統(tǒng)環(huán)境變量。COINDIR是Coin-3.1.0-bin-msvc8的解壓目錄,而PATH是其解壓目錄下的bin目錄。PATH的環(huán)境變量設(shè)置如圖2所示。

步驟三下載并安裝SoWin:

SoWin是基于Windows的窗口組件,任何使用Coin3D開發(fā)的OVI程序都需要依靠SoWin在Windows系統(tǒng)中顯示和展現(xiàn),而且它

還為3D圖形提供與用戶的交互接口。這里下載SoWin-1.4.0.zip。解壓該目錄,然后將SoWin-1.4.0目錄放在D:Coin-3.1.0-bin-ms? vc8中。

在SoWin-1.4.0文件夾中的build目錄,選擇適合的版本,打開工程文件進(jìn)行編譯(我們這里選擇msvc8版本)。為了防止在編譯的過(guò)程中出現(xiàn)cmd.exe錯(cuò)誤,需要設(shè)置可執(zhí)行文件使用路徑。在VS2005的[工具]——[選項(xiàng)]——[項(xiàng)目解決方案]——[VC ++目錄]的“可執(zhí)行文件”列表中添加這三項(xiàng)“$(SystemRoot)System32”、“$(SystemRoot)”、$(SystemRoot)System32wbem,如圖3所示。接下來(lái)進(jìn)行調(diào)試編譯,如果編譯中報(bào)類似“無(wú)法打開文件coin2d.lib”錯(cuò)誤,需要在VS2005的[項(xiàng)目]——[sowin1屬性]——[配置屬性]——[鏈接器]——[輸入]——[輸入依賴項(xiàng)]中的coin2d.lib改為coin3d.lib,然后再編譯調(diào)試。編譯過(guò)程中沒有報(bào)錯(cuò),會(huì)在Coin3D的目錄里自動(dòng)生成SoWin的一些文件,比如sowin1d.dll和sowin1d.lib等,而且在Coin3D目錄下的includeInventor里面增加一個(gè)Win頭文件目錄,這說(shuō)明SoWin編譯安裝成功。

圖7一個(gè)圓錐

該程序使用了一個(gè)OVI的Win窗口,它是OVI組件庫(kù)的一部分。組件庫(kù)帶有窗口管理和事件處理功能,還包括一系列OVI組件。我們可以在窗口中對(duì)圓錐進(jìn)行旋轉(zhuǎn)、縮放等操作。程序一共只有十幾行代碼,卻開發(fā)出如此功能豐富的交互式三維圖形程序,這充分說(shuō)明利用OVI開發(fā)交互式三維圖形程序的簡(jiǎn)單、快捷。

Open Inventor(OVI)是基于OpenGL的面向?qū)ο蟮拈_發(fā)交互式三維圖形軟件開發(fā)包,可以用它快速、簡(jiǎn)潔地開發(fā)出各種類型的交互式三維圖形軟件。該文詳細(xì)地研究、討論了OVI的開發(fā)步驟以及VS2005中如何搭建OVI開發(fā)環(huán)境步驟,希望能夠給OVI的初學(xué)者提供入門幫助。

莫力| 和田县| 葫芦岛市| 南阳市| 苗栗县| 德昌县| 龙口市| 类乌齐县| 阳西县| 富平县| 通化市| 仙居县| 福贡县| 锡林郭勒盟| 巴里| 乌海市| 昌乐县| 含山县| 句容市| 沙河市| 青神县| 宁津县| 黑河市| 奈曼旗| 上林县| 武平县| 东台市| 康乐县| 扶沟县| 汽车| 天台县| 类乌齐县| 广德县| 定安县| 安康市| 斗六市| 西充县| 花垣县| 广水市| 永顺县| 三门峡市|