模王輝++宋昌統(tǒng)
摘要:隨著中國(guó)經(jīng)濟(jì)的不斷進(jìn)步,人們生活水平的不斷提高,出現(xiàn)了一種新型的計(jì)算機(jī)核心技術(shù),稱(chēng)為虛擬現(xiàn)實(shí)(Virtual Reality)。這種技術(shù)的興起,將成為整個(gè)計(jì)算機(jī)行業(yè)的核心價(jià)值,在迅速發(fā)展的21世紀(jì),X3D虛擬現(xiàn)實(shí)技術(shù)是最值得關(guān)注的新型的計(jì)算機(jī)技術(shù),可謂是最高科技的成果之一。在此基礎(chǔ)上,我們通過(guò)對(duì)X3D虛擬現(xiàn)實(shí)技術(shù)的分析和探討,較為細(xì)致地了解這種技術(shù)的組成,并且找到提升技術(shù)的方法,對(duì)整個(gè)中國(guó)的發(fā)展具有深刻的意義。
關(guān)鍵詞:虛擬現(xiàn)實(shí);X3D;建模
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)11-0238-02
在網(wǎng)絡(luò)快速發(fā)展的今天,虛擬現(xiàn)實(shí)已經(jīng)被應(yīng)用到了多個(gè)方面,在人們的日常生活中占有一定的地位,主要應(yīng)用在教育、衛(wèi)生、軍事、科研、醫(yī)學(xué)、體育等等方面。虛擬現(xiàn)實(shí)系統(tǒng)主要是由一些硬件設(shè)備和一些軟件設(shè)備組成的,包括3D的立體眼鏡以及帶有數(shù)據(jù)的頭盔,還有一些軟件,比如VRML、OpenGL、Java3D、X3D 等等。而X3D則是虛擬現(xiàn)實(shí)中的一種軟件組成,就是一種對(duì)網(wǎng)絡(luò)上三維物體的描述。X3D本身就具有一定的靈活性和實(shí)用性,對(duì)于自身的擴(kuò)展也很大。
1 虛擬現(xiàn)實(shí)技術(shù)
1989年美國(guó)的Jaron Lanier提出了虛擬現(xiàn)實(shí)(VR)并且把其制作成商品進(jìn)行銷(xiāo)售,他是美國(guó)公司 VPL Research 的創(chuàng)始人。虛擬現(xiàn)實(shí)技術(shù)通俗來(lái)說(shuō)就是通過(guò)計(jì)算機(jī)軟件搭建出來(lái)的虛擬的東西和環(huán)境,通過(guò)專(zhuān)業(yè)的設(shè)備對(duì)其進(jìn)行一定程度上的改革,構(gòu)建出的場(chǎng)景,這種技術(shù)可以很好地讓人們感受不一樣的網(wǎng)絡(luò)世界。比如我們都曾看過(guò)的3D電影《飛屋環(huán)游記》,通過(guò)特殊的3D眼鏡,讓我們仿佛置身于電影中一樣。3D電影就是虛擬現(xiàn)實(shí)的一種。虛擬現(xiàn)實(shí)融合了許多技術(shù),比如說(shuō)計(jì)算機(jī)仿真技術(shù),人工智能技術(shù),多媒體技術(shù),傳感技術(shù),計(jì)算機(jī)圖形學(xué)技術(shù),網(wǎng)絡(luò)技術(shù),人機(jī)接口技術(shù)等等。它的特點(diǎn)總結(jié)起來(lái)就是三點(diǎn),分別是交互性(Interaction),想象力(Imagination),以及沉浸感(Immersion),簡(jiǎn)稱(chēng)3i。目前的虛擬現(xiàn)實(shí)是由兩部分組成的,軟件組成:虛擬現(xiàn)實(shí)軟件X3D(可擴(kuò)展 3D)、VRML(虛擬現(xiàn)實(shí)建模語(yǔ)言)、Java3D、OpenGL、Vega、Converse3d、3DMAX、Maya 等。硬件組成:立體投影、立體眼鏡、三維頭盔顯示器、數(shù)據(jù)手套、三維語(yǔ)音識(shí)別系統(tǒng)、三維空間跟蹤定位器、三維空間交互球、多通道環(huán)幕系統(tǒng)等。
2 X3D 的組成
1998年Web3D 聯(lián)盟正式提出X3D(Extensible 3D)。在這項(xiàng)技術(shù)得到了很多家公司和科研機(jī)構(gòu)的認(rèn)可和支持,在一定程度上促進(jìn)了每個(gè)公司的發(fā)展。X3D技術(shù)為了方便在網(wǎng)絡(luò)和瀏覽器傳輸上更加的方便,于是采用了 XML 語(yǔ)言,進(jìn)而對(duì)其進(jìn)行描述。通過(guò)與Java、XML、流媒體等技術(shù)的融合,在表現(xiàn)上更加的完美。具有更加完善的技術(shù)。X3D 系統(tǒng)結(jié)構(gòu)是以組件技術(shù)為基礎(chǔ)的。 包括內(nèi)核,VRML97 特征集,應(yīng)用程序接口和擴(kuò)展集四個(gè)部分,如圖 1 所示。
內(nèi)核(Core)最主要的核心的特點(diǎn)就是有很好的擴(kuò)展性,大小也剛剛好,占用的空間也不是很大,內(nèi)核的核心主要是由VRML97的一小部分組成的,只用到了54個(gè)節(jié)點(diǎn)中的23個(gè)。而剩下的31個(gè)節(jié)點(diǎn)則全部做成了插拔的組件,在一定程度上能夠使 X3D對(duì)VRML進(jìn)行兼容并且提高系統(tǒng)的運(yùn)行效率。X3D的應(yīng)用程序接口是由文檔對(duì)象模型 (Document Object Model ,DOM)和XML 編碼提供的,而對(duì)于外部應(yīng)用程序則是要通過(guò) DOM 訪(fǎng)問(wèn) X3D 文件才能完成。在此基礎(chǔ)上,X3D 內(nèi)外部場(chǎng)景是通過(guò)內(nèi)部創(chuàng)作接口(Script Authoring Interface ,SAI)與外部創(chuàng)作接口(External AuthoringInterface ,EAI)動(dòng)態(tài)交互形成的。內(nèi)部創(chuàng)作接口對(duì) X3D 內(nèi)外部場(chǎng)景交互是通過(guò)JavaScript 語(yǔ)言編寫(xiě)腳本或者利用Java來(lái)實(shí)現(xiàn)的。外部創(chuàng)作接口被稱(chēng)作是 Java 語(yǔ)言定義的一系列類(lèi)包。外部應(yīng)用程序如果要對(duì)VRML場(chǎng)景進(jìn)行改正或者控制,再或者進(jìn)行一系列的操作,那么就需要通過(guò)訪(fǎng)問(wèn)這些類(lèi)包來(lái)實(shí)現(xiàn)。
3 X3D場(chǎng)景建模
3.1 X3D節(jié)點(diǎn)建模
(1)X3D文件結(jié)構(gòu)X3D 文件結(jié)構(gòu)采用 ISO/IEC 19775-1 的 7.2.3, Abstract X3D structure 中的定義。X3D 文件結(jié)構(gòu)包括 X3D 文件頭、文檔類(lèi)型(DTD 格式)及 X3D 主程序概貌等內(nèi)容。 X3D 主程序概貌包括頭文檔和場(chǎng)景。 頭文檔包括組件和元數(shù)據(jù)。 X3D 場(chǎng)景包括各種節(jié)點(diǎn)。 通過(guò)組織各種節(jié)點(diǎn)來(lái)創(chuàng)建虛擬的三維場(chǎng)景。 X3D 的文件結(jié)構(gòu)如圖 2 所示。
(2)X3D 的語(yǔ)法結(jié)構(gòu)
根據(jù)ISO/IEC 19775-1的規(guī)定X3D 文件頭需要是一個(gè)單行的 UTF-8 文本,這樣才能識(shí)別是一個(gè)XML 文件。X3D文檔在使用時(shí)屬性要在規(guī)定的概貌集合的范圍內(nèi)。Geometry3D 組件是所有的三維幾何節(jié)點(diǎn)組成的,對(duì)于這種功能相同的節(jié)點(diǎn)的組成就叫做組件。 X3D 場(chǎng)景主體由一對(duì)<;Scene>;和<;/Scene>;組成的,中間可以插入背景節(jié)點(diǎn)、視覺(jué)節(jié)點(diǎn)、導(dǎo)航節(jié)點(diǎn)、集合節(jié)點(diǎn)、復(fù)雜造型節(jié)點(diǎn)等,通過(guò)這些節(jié)點(diǎn)的組織來(lái)創(chuàng)建要表示的三維空間的場(chǎng)景和造型。
3.2 場(chǎng)景的優(yōu)化
場(chǎng)景模型優(yōu)化在搭建虛擬場(chǎng)景時(shí),很多時(shí)候我們必須要拋開(kāi)一部分的真實(shí)性。這樣的情況下,貼圖的辦法就比較可行,應(yīng)用繪圖軟件或者是已有的圖片、建筑物的各個(gè)方面的照片。對(duì)于紋理貼圖來(lái)說(shuō),格式一定要為 RGB,單位為像素,寬與長(zhǎng)要控制在2的冪。為了提升場(chǎng)景的運(yùn)行速度,最好是把所有面都放在同一個(gè)文件里。為了要營(yíng)造真實(shí)的感覺(jué),還應(yīng)該加上光照,在一定程度上通過(guò)光照來(lái)營(yíng)造真實(shí)的感官。除了這些,最主要的就是對(duì)紋理的處理,為了達(dá)到預(yù)想的效果,最重要的就是使用面積比較小的紋理,這樣占用的空間也比較小。
復(fù)用技術(shù)文件外部和內(nèi)部的復(fù)用是X3D 的復(fù)用技術(shù)的兩個(gè)方面。文件外部的復(fù)用就是根據(jù)一定的順序進(jìn)行渲染繪制,按照從大到小,從左到右,從上到下、從右到左、從下到上的順序進(jìn)行渲染,有層次的進(jìn)行。而文件內(nèi)部的復(fù)用則是可以先對(duì)節(jié)點(diǎn)進(jìn)行一定程度上的預(yù)定,在使用時(shí),就不需要在進(jìn)行整改,直接可以用上,不用在對(duì)其進(jìn)行編輯。X3D 為了方便編寫(xiě)的工作,還可以進(jìn)行自定義新的節(jié)點(diǎn)。
文件壓縮壓縮二進(jìn)制編碼的開(kāi)發(fā)為X3D有效的提供了一個(gè)特殊的環(huán)境,在安全為提前的基礎(chǔ)之下,X3D具有高壓縮比和加密性。在這樣的基礎(chǔ)上,X3D二進(jìn)制格式也擁有了這兩種環(huán)境。X3D 允許采用瀏覽器支持的多種編碼模式進(jìn)行混合編碼,解析時(shí)只需要按照特定瀏覽器需要進(jìn)行解析即可。
4 結(jié)束語(yǔ)
本文通過(guò)對(duì)虛擬現(xiàn)實(shí)中的X3D的系統(tǒng)結(jié)構(gòu)進(jìn)行分析和討論,對(duì)場(chǎng)景的優(yōu)化和建模都有了新的方法。根據(jù)對(duì)實(shí)驗(yàn)的研究,我們知道為了方便和適合計(jì)算機(jī)網(wǎng)絡(luò)的下載或者是運(yùn)輸,制作出來(lái)的場(chǎng)景的體積要普遍較小,基本的模型要在1k左右。由于支持的節(jié)點(diǎn)比較多,所以在建模與交互兩個(gè)方面都顯得容易些,在Java 語(yǔ)言的支持和與 XML 語(yǔ)言的結(jié)合方面,都有不同的表現(xiàn)。
參考文獻(xiàn):
[1] 劉永安,高素青,楊磊.基于X3D的虛擬場(chǎng)景建模技術(shù)[J].電腦知識(shí)與技術(shù),2009(22):6271-6273.
[2] 徐雷,趙立科,李成.基于X3D的大規(guī)模三維地形場(chǎng)景構(gòu)建[J].礦山測(cè)量,2008(5):43-45+4.
[3] 王志強(qiáng),蔡平.基于X3D的虛擬環(huán)境建模的應(yīng)用研究[J].福建電腦,2008(11):109,141.