版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
多媒體系統(tǒng)開發(fā)工具和編程應(yīng)用VRML語言及應(yīng)用開發(fā)目錄:1.虛擬現(xiàn)實及其類型HYPERLINK1.1虛擬現(xiàn)實的概念HYPERLINK1.2虛擬現(xiàn)實的類型HYPERLINK1.3虛擬現(xiàn)實在教育中的應(yīng)用HYPERLINK1.4虛擬現(xiàn)實技術(shù)2.VRML技術(shù)HYPERLINK2.1VRML的概念HYPERLINK2.2VRML的歷史HYPERLINK2.3VRML工作組及其研究目標HYPERLINK2.4VRML的研究現(xiàn)狀HYPERLINK2.5VRML的應(yīng)用實例2.5.1網(wǎng)上虛擬實驗室2.5.2網(wǎng)上觀景實例2.5.3網(wǎng)上物體展示2.5.43.VRML編程基礎(chǔ)HYPERLINK3.1VRML的工作原理HYPERLINK3.2VRML掃瞄器HYPERLINK3.3VRML制作工具3.3.1VRML代碼編輯軟件3.3.2可視化VRML制作工具HYPERLINK3.4VRML2.0的差不多語法知識3.4.1VRML文件結(jié)構(gòu)3.4.2差不多造型的生成3.4.3VRML動畫程序編程3.4.4VRML交互程序編程3.4.5VRML多媒體編程及自定義節(jié)點的應(yīng)用
3.4.6VRML編程建議4.VRML應(yīng)用到多媒體課件的開發(fā)HYPERLINK4.1將VRML文件嵌入網(wǎng)頁中HYPERLINK4.2將VRML文件嵌入powerpoint課件中HYPERLINK4.3將VRML文件嵌入Authorware課件中
一、虛擬現(xiàn)實及其類型1.1虛擬現(xiàn)實的概念虛擬現(xiàn)實(VirtualReality,簡稱VR;又譯作靈境、幻真)是近年來出現(xiàn)的高新技術(shù),也稱靈境技術(shù)或人工環(huán)境。虛擬現(xiàn)實是利用電腦模擬產(chǎn)生一個三度空間的虛擬世界,提供使用者關(guān)于視覺、聽覺、觸覺等感官的模擬,讓使用者如同身歷其境一般,能夠及時、沒有限制地觀看三度空間內(nèi)的事物。VR是一項綜合集成技術(shù),涉及計算機圖形學、人機交互技術(shù)、傳感技術(shù)、人工智能等領(lǐng)域,它用計算機生成逼確實三維視、聽、嗅覺等感受,使人作為參與者通過適當裝置,自然地對虛擬世界進行體驗和交互作用。使用者進行位置移動時,電腦能夠立即進行復雜的運算,將精確的3D世界影像傳回產(chǎn)生臨場感。該技術(shù)集成了計算機圖形(CG)技術(shù)、計算機仿真技術(shù)、人工智能、傳感技術(shù)、顯示技術(shù)、網(wǎng)絡(luò)并行處理等技術(shù)的最新進展成果,是一種由計算機技術(shù)輔助生成的高技術(shù)模擬系統(tǒng)。概括地講,虛擬現(xiàn)實是人們通過計算機對復雜數(shù)據(jù)進行可視化操作與交互的一種全新方式,與傳統(tǒng)的人機界面以及流行的視窗操作相比,虛擬現(xiàn)實在技術(shù)思想上有了質(zhì)的飛躍。虛擬現(xiàn)實中的“現(xiàn)實”是泛指在物理意義上或功能意義上存在于世界上的任何事物或環(huán)境,它能夠是實際上可實現(xiàn)的,也能夠是實際上難以實現(xiàn)的或全然無法實現(xiàn)的。而“虛擬”是指用計算機生成的意思。因此,虛擬現(xiàn)實是指用計算機生成的一種專門環(huán)境,人能夠通過使用各種專門裝置將自己“投射”到那個環(huán)境中,并操作、操縱環(huán)境,實現(xiàn)專門的目的,即人是這種環(huán)境的主宰。1.2虛擬現(xiàn)實的分類一般講來,我們能夠從不同角度對虛擬現(xiàn)實進行分類。例如,按照參與者沉醉程度的不同,能夠?qū)⑻摂M現(xiàn)實分為四類:(1)桌面虛擬現(xiàn)實桌面虛擬現(xiàn)實通常利用個人計算機(PC)進行仿真,將電腦的屏幕作為用戶觀看虛擬環(huán)境的窗口。觀看者能夠通過各種外部輸入設(shè)備與虛擬現(xiàn)實世界進行交互,并操縱其中的物體。這些外部設(shè)備包括鼠標、追蹤球、力矩球等。桌面虛擬現(xiàn)實的缺點是缺乏真正的接近現(xiàn)實的體驗,但相對來講成本較低,使其應(yīng)用比較廣泛。常見的桌面虛擬現(xiàn)實技術(shù)有:基于靜態(tài)圖象的虛擬現(xiàn)實QuickTimeVR,虛擬現(xiàn)實造型語言VRML等。(2)沉醉式虛擬現(xiàn)實高級虛擬現(xiàn)實系統(tǒng)提供完全沉醉的體驗,使用戶有一種置身于虛擬世界之中的感受。通常利用頭盔式顯示器或者其他設(shè)備,把參與者的視覺、聽覺等其他感受封閉起來,而提供一個新的、虛擬的感受空間,同時利用位置跟蹤器、數(shù)據(jù)手套以及其他手控輸入設(shè)備等使得參與者產(chǎn)生一種身臨其境、全心投入和沉醉其中的感受。常見的沉醉式系統(tǒng)有基于頭盔式顯示器的系統(tǒng)、投影式虛擬現(xiàn)實系統(tǒng)等。(3)增強現(xiàn)實式虛擬現(xiàn)實增強現(xiàn)實式的虛擬現(xiàn)實不僅是利用虛擬現(xiàn)實技術(shù)來模擬現(xiàn)實世界、仿真現(xiàn)實世界,而且要利用它來增強參與者對真實環(huán)境的感受,也確實是增強現(xiàn)實中無法感知或不方便感知的感受。典型的例子是坦克駕駛員的平視顯示器,它能夠?qū)x表讀數(shù)和武器瞄準數(shù)據(jù)投射到安裝在駕駛員面前的穿透式屏幕上,使坦克駕駛員不必低頭讀座艙中儀表的數(shù)據(jù),從而可集中精力調(diào)整導航偏差。(4)分布式虛擬現(xiàn)實假如將多個用戶通過電腦網(wǎng)絡(luò)連接在一起,同時在一個虛擬空間中活動,共同體驗虛擬的經(jīng)歷,就能把虛擬現(xiàn)實提升到一個更高的境地,這確實是分布式虛擬現(xiàn)實系統(tǒng)。在分布式虛擬現(xiàn)實系統(tǒng)中,多個用戶可通過網(wǎng)絡(luò)對同一虛擬世界進行觀看和操作,以達到協(xié)同工作的目的。目前最典型的分布式虛擬現(xiàn)實系統(tǒng)是SIMNET,該系統(tǒng)由坦克仿真器通過網(wǎng)絡(luò)連接而成,用于部隊的聯(lián)合訓練。通過SIMNET系統(tǒng),位子歐洲的仿真器能夠和位于美國的仿真器同時運行在同一個虛擬世界中,參與同一場作戰(zhàn)演習。1.3虛擬現(xiàn)實在教育中的應(yīng)用虛擬現(xiàn)實應(yīng)用于教育是教育技術(shù)進展的一個飛躍。它營造了“自主學習”的環(huán)境,由傳統(tǒng)的“以教促學”的學習方式代之為學習者通過自身與信息環(huán)境的相互作用來得到知識、技能的新型學習方式。它要緊具體應(yīng)用在以下幾個方面:科技研究當前許多高校都在積極研究虛擬現(xiàn)實技術(shù)及其應(yīng)用,并相繼建起了虛擬現(xiàn)實與系統(tǒng)仿確實研究室,將科研成果迅速轉(zhuǎn)化有用技術(shù),如北京航天航空大學在分布式飛行模擬方面的應(yīng)用;浙江大學在建筑方面進行虛擬規(guī)劃、虛擬設(shè)計的應(yīng)用;哈爾濱工業(yè)大學在人機交互方面的應(yīng)用;清華大學對臨場感的研究等都頗具特色。有的研究室甚至差不多具備獨立承接大型虛擬現(xiàn)實項目的實力。虛擬學習環(huán)境虛擬現(xiàn)實技術(shù)能夠為學生提供生動、逼確實學習環(huán)境,如建筑人體模型、電腦太空旅行、化合物分子結(jié)構(gòu)顯示等,在廣泛的科目領(lǐng)域提供無限的虛擬體驗,從而加速和鞏固學生學習知識的過程。親身去經(jīng)歷、親身去感受比空洞抽象的講教更具講服力,主動地去交互與被動的灌輸,有本質(zhì)的差不。虛擬實驗利用虛擬現(xiàn)實技術(shù),能夠建立各種虛擬實驗室,如地理、物理、化學、生物實驗室等等,擁有傳統(tǒng)實驗室難以比擬的優(yōu)勢:1、節(jié)約成本通常我們由于設(shè)備、場地、經(jīng)費等硬件的限制。許多實驗都無法進行。而利用虛擬現(xiàn)實系統(tǒng),學生足不出戶便能夠做各種實驗,獲得與真實實驗一樣的體會。在保證教學效果的前提下,極大的節(jié)約了成本。2、規(guī)避風險真實實驗或操作往往會帶來各種危險,利用虛擬現(xiàn)實技術(shù)進行虛擬實驗,學生在虛擬實驗環(huán)境中,能夠放心地去做各種危險的實驗。例如:虛擬的飛機駕駛教學系統(tǒng),可免除學員操作失誤而造成飛機墜毀的嚴峻事故。3、打破空間、時刻的限制利用虛擬現(xiàn)實技術(shù),能夠完全打破時刻與空間的限制。大到宇宙天體,小至原子粒子,學生都能夠進入這些物體的內(nèi)部進行觀看。一些需要幾十年甚至上百年才能觀看的變化過程,通過虛擬現(xiàn)實技術(shù),能夠在專門短的時刻內(nèi)呈現(xiàn)給學生觀看。例如,生物中的孟德爾遺傳定律,用果蠅做實驗往往要幾個月的時刻,而虛擬技術(shù)在一堂課內(nèi)就能夠?qū)崿F(xiàn)。虛擬實訓基地利用虛擬現(xiàn)實技術(shù)建立起來的虛擬實訓基地,其“設(shè)備”與“部件”多是虛擬的,能夠依照隨時生成新的設(shè)備。教學內(nèi)容能夠不斷更新,使實踐訓練及時跟上技術(shù)的進展。同時,虛擬現(xiàn)實的沉醉性和交互性,使學生能夠在虛擬的學習環(huán)境中扮演一個角色,全身心地投入到學習環(huán)境中去,這特不有利于學生的技能訓練。包括軍事作戰(zhàn)技能、外科手術(shù)技能、教學技能、體育技能、汽車駕駛技能、果樹栽培技、電器維修技能等各種職業(yè)技能的訓練,由于虛擬的訓練系統(tǒng)無任何危險,學生能夠不厭其煩地反復練習,直至掌握操作技能為止。例如:在虛擬的飛機駕駛訓練系統(tǒng)中,學員能夠反復操作操縱設(shè)備,學習在各種天氣情況下駕駛飛機起飛、降落,通過反復訓練,達到熟練掌握駕駛技術(shù)的目的。虛擬仿真校園教育部在一系列相關(guān)的文件中,多次涉及到了虛擬校園,闡明了虛擬校園的地位和作用。虛擬校園也是虛擬現(xiàn)實技術(shù)在教育培訓中最早的具體應(yīng)用,它由淺至深有三個應(yīng)用層面,分不適應(yīng)學校不同程度的需求:簡單的虛擬我們的校園環(huán)境供游客掃瞄基于教學、教務(wù)、校園生活,功能相對完整的三維可視化虛擬校園以學員為中心,加入一系列人性化的功能,以虛擬現(xiàn)實技術(shù)作為遠程教育基礎(chǔ)平臺虛擬遠程教育虛擬現(xiàn)實可為高校擴大招生后設(shè)置的分校和遠程教育教學點提供可移動的電子教學場所,通過交互式遠程教學的課程目錄和網(wǎng)站,由局域網(wǎng)工具作校園網(wǎng)站的鏈接,可對各個終端提供開放性的、遠距離的持續(xù)教育,還可為社會提供新技術(shù)和高等職業(yè)培訓的機會,制造更大的經(jīng)濟效益與社會效益。隨著虛擬現(xiàn)實技術(shù)的不斷進展和完善,以及硬件設(shè)備價格的不斷降低,我們相信,虛擬現(xiàn)實技術(shù)以其自身強大的教學優(yōu)勢和潛力,將會逐漸受到教育工作者的重視和青睞,最終在教育培訓領(lǐng)域廣泛應(yīng)用并發(fā)揮其重要作用。1.4虛擬現(xiàn)實技術(shù)虛擬現(xiàn)實技術(shù)也稱靈境技術(shù),它是虛擬環(huán)境實現(xiàn)的基礎(chǔ),在虛擬世界的創(chuàng)建中占據(jù)重要地位。那么,什么是虛擬現(xiàn)實技術(shù)呢?虛擬現(xiàn)實技術(shù)是多媒體技術(shù)廣泛應(yīng)用后興起的更高層次的計算機技術(shù),它利用三維圖形生成技術(shù)、多傳感交互技術(shù)以及高分辨顯示技術(shù),生成三維逼確實虛擬環(huán)境,用戶戴上專門的頭盔、數(shù)據(jù)手套等傳感設(shè)備,或利用鍵盤、鼠標等輸入設(shè)備,便可進入虛擬空間,成為虛擬環(huán)境的一員,進行實時交互,感知和操作虛擬世界中的各種對象,從而獲得身臨其境的感受和體會。事實上,虛擬現(xiàn)實技術(shù)不僅僅是指戴著頭盔和數(shù)據(jù)手套的技術(shù),而且還應(yīng)該包括一切與之有關(guān)的具有自然模擬、逼真體驗的技術(shù)與方法,它的全然目標確實是達到真實體驗和基于自然技能的人機交互。也可更為具體地給虛擬現(xiàn)實技術(shù)作如下的定義:虛擬現(xiàn)實技術(shù)是利用計算機生成一種模擬環(huán)境,通過多種傳感設(shè)備使用戶“投入”到該環(huán)境中,實現(xiàn)用戶與該環(huán)境直接進行自然交互的技術(shù)。虛擬現(xiàn)實技術(shù)的要緊特點包括以下3個方面:(1)更自然的交互性用戶對模擬環(huán)境內(nèi)物體的可操作程度和從環(huán)境得到反饋的自然程度(包括實時性)。例如,用戶能夠用手去直接抓取視場中的物體,這時手有握著真實物體的感受,同時還能夠感受物體的重量,視場中的物體也將隨著手的移動而移動,隨著手的擠壓而變形。(2)多感知性除了一船電腦所具有的視覺和聽覺感之外,還有力學感知、觸覺感知、運動感知、甚至包括味覺感知、嗅覺感知等。理想的虛擬現(xiàn)實確實是應(yīng)該具有人所具有的所有感知功能。(3)沉醉性指用戶感到作為虛擬環(huán)境中的一員存在于虛擬環(huán)境之中,即感受身臨其境。如當用戶轉(zhuǎn)動頭部時,虛擬環(huán)境中的視景也實時地跟著變化:移動數(shù)據(jù)手套時,虛擬環(huán)境中的手中的物體也跟著移動。理想的模擬環(huán)境應(yīng)該達至。使用戶難以分辨真假的程度,使得參與者產(chǎn)生一種身臨其境、投入和沉醉其中的感受。從本質(zhì)上講,虛擬現(xiàn)實技術(shù)確實是一種先進的計算機用戶接口技術(shù),它通過給用戶同時提供諸如視、聽、觸等各種直觀而又自然的實時感知交互手段,最大限度地點便用戶的操作,從而減輕用戶的負擔,提高整個系統(tǒng)的工作效率。依照虛擬現(xiàn)實實現(xiàn)的手段不同,我們能夠把虛擬現(xiàn)實技術(shù)分為以下兩大類:(1)使用專用硬件實現(xiàn)的虛擬現(xiàn)實技術(shù)譬如在視覺方面有頭盔式立體顯示器等,在聽覺方面有三維音響輸出裝置,在力覺、觸覺、運動感等方面有數(shù)據(jù)手套、數(shù)據(jù)衣,以及語音識不、眼球運動檢測等裝置。在以后,還將開發(fā)出具備味覺、嗅覺功能的系統(tǒng),從而使虛擬世界更加接近真實。然而由于硬件設(shè)施的價格昂貴、操作復雜,因此使用專用硬件的技術(shù)近期不可能普及,只能停留在實驗室或者小范圍試用時期。(2)基于網(wǎng)絡(luò)的虛擬現(xiàn)實技術(shù)在Internet網(wǎng)上,我們能夠應(yīng)用VRML語言、全景環(huán)視技術(shù)、Java語言等等技術(shù)來實現(xiàn)虛擬現(xiàn)實,也稱網(wǎng)上虛擬現(xiàn)實技術(shù)。它是前述的桌面虛擬現(xiàn)實與Internet相結(jié)合的產(chǎn)物。其優(yōu)點是使用簡單,便于推廣。HYPERLINK返回
二、VRML技術(shù)2.1VRML概述熟悉WWW的人們都明白,受HTML語言的局限性,VRML(VirtualRealityModelingLanguage,虛擬現(xiàn)實建模語言)之前的網(wǎng)頁只能是簡單的平面結(jié)構(gòu),盡管Java語言為WWW增色許多,但也僅僅停留在平面設(shè)計時期,而且實現(xiàn)環(huán)境與參與者的動態(tài)交互是特不煩瑣的。因此,VRML就應(yīng)運而生了。VRML是一種建模語言,也確實是講,它是用來描述三維物體及其行為的,能夠構(gòu)建虛擬境地(VirturalWorld)。VRML的差不多目標是建立因特網(wǎng)上的交互式三維多媒體,差不多特征包括分布式、三維、交互性、多媒體集成、境地逼真性等。VRML的出現(xiàn)使得虛擬現(xiàn)實象多媒體和因特網(wǎng)一樣逐漸走進我們的生活。VRML以因特網(wǎng)作為應(yīng)用平臺,最有希望成為構(gòu)筑虛擬現(xiàn)實應(yīng)用的差不多構(gòu)架??傊?,VRML將制造一種融多媒體、三維圖形、網(wǎng)絡(luò)通訊、虛擬現(xiàn)實為一體的新型媒體,兼具先進性和普及性,是關(guān)懷三維圖形、多媒體、新一代網(wǎng)頁開發(fā)和虛擬現(xiàn)實技術(shù)的人士應(yīng)緊密注意的。WorldWideWeb是建立在基于HTTP的網(wǎng)絡(luò)協(xié)議和超文本的信息內(nèi)容的基礎(chǔ)上的,HTML語言描述了不同類型文本、圖像、聲音、視頻如何進行超文本的二維表示格式和方法。它用二維方式讓文本和圖像能同時顯示。HTML是面向二維的,它規(guī)定二維文檔如何表示,隨著Internet技術(shù)的進展,需要突破二維限制,實現(xiàn)環(huán)境與參與者的動態(tài)交互功能,因此,一種描述三維文檔表示的語言VRML應(yīng)運而生。VRML是一個開放的、可擴充的三維場景建模語言,也確實是講,它是用來描述三維物體及其行為的,能夠構(gòu)建虛擬境地。VRML的差不多目標是建立因特網(wǎng)上的交互式三維多媒體,差不多特征包括分布式、三維、交互性、多媒體集成、境地逼真性等。VRML是面向三維的,它描述在WorldWideWeb上如何創(chuàng)建和掃瞄三維場景。因為二維是三維的一個子集,因此任何二維對象都能在三維環(huán)境中輕松地表示出來。Web之父TimBernersLee預測,VRML是Web的以后,因為對人們來講,沉醉在三維空間中要比在二維平面上按動鼠標要自然的多。VRML以因特網(wǎng)作為應(yīng)用平臺,利用一定的工具,就能夠掃瞄和創(chuàng)作具有文本、圖像、動畫、聲音、音樂,甚至視頻的豐富多彩的三維世界?,F(xiàn)在,由于加入了與Java和JavaScript程序的接口將支持復雜的三維動畫、模擬和行為,設(shè)計者能夠引導參觀者在三維空間巡游并把注意力放在感興趣的點上,而不是要強制參觀者做出選擇,就像在現(xiàn)實世界,如何去觀看一個對象完全由參觀者自己操縱。VRML的出現(xiàn)使得虛擬現(xiàn)實像多媒體和因特網(wǎng)一樣逐漸走進我們的生活,簡單地講,以VRML為基礎(chǔ)的第二代萬維網(wǎng)是多媒體、虛擬現(xiàn)實和因特網(wǎng)之和。第一代萬維網(wǎng)是一種訪問文檔的媒體,能夠提供閱讀的感受,使那些對Windows風格的PC環(huán)境熟悉的人們?nèi)菀资褂靡蛱鼐W(wǎng),而以VRML為核心的第二代萬維網(wǎng)將使用戶如身處真實世界,在一個三維環(huán)境里隨意探究因特網(wǎng)上無比豐富的巨大信息資源。每個人都能夠從不同的路線進入虛擬世界,和虛擬物體進行交互,如此操縱感受的就不再是計算機,而是用戶自己。人們能夠以適應(yīng)的自然方式訪問各種場所,在虛擬社區(qū)中“直接”交談和交往。事實上,目前采納VRML技術(shù)取得成功的案例差不多專門多,例如探路者到達火星后的信息確實是利用VRML在因特網(wǎng)上即時公布的,網(wǎng)絡(luò)用戶能夠以三維方式隨探路者探究火星。2.2VRML的歷史最初的三維掃瞄器叫做Labyrith,它誕生于1994年2月,是由MarkPesce和TonyParisi兩人開發(fā)的。他們把它帶到幾個國際大型展示會上作了演示。1994年5月,在瑞士日內(nèi)瓦召開的萬維網(wǎng)(www)會議上,MarkPesce和TonyParisi在會上介紹了那個可掃瞄萬維網(wǎng)上三維物體的界面。這時,由一個情趣相投者聯(lián)誼會BOF立即產(chǎn)生強烈的反響,決定開發(fā)一種場景描述語言,它能夠連通Web網(wǎng)。當代Web的奠基人TimBerners-Lee提出了需要制定一個3DWeb標準,并創(chuàng)建了虛擬現(xiàn)實標記語言VRML(VirtualRealityMarkupLanguage)這一名字。(BOF來自一句英語的諺語:Birdsofafeather)Parisi和Pesce認為推廣它的最好的方式確實是免費贈送,并講服了美國《線路通》(Wired)雜志的BrianBehlendorf開始設(shè)置名為www-vrml的電子郵件列表,在一個月之內(nèi),收集到一份有意于參與開發(fā)VRML人員的電子郵箱通訊錄,那只只是是開初一周內(nèi)登錄的志愿人員,已超過千人。VRML的名字專門快更改為“VirtualRealityModelingLanguage”即“虛擬現(xiàn)實造型語言”,以反映它強調(diào)的是整個世界,而不是單純的文本頁。其中有一位GavinBell,他是SGI(硅圖公司SiliconGraphicsInc.)的工作組的工程師。OpenInventor是SGI推出的一工具軟件,便于程序員快速、簡潔地開發(fā)各種類型的交互式3D圖形程序。這種工具軟件的編制是基于場景結(jié)構(gòu)和對象描述概念和手段。1992年,最初公布時名稱為Inventor。工作組每周進行一次例行的午餐會,盡管外人對其中奧妙一無所知,但專門多工作組的內(nèi)部事務(wù),往往在這種不拘形式的隨意交談中得以完成。GavinBell正是利用了一次這種場合,告訴他的主管經(jīng)理RillCarey關(guān)于VRML的情況,講明急需建立一種可在Web網(wǎng)上運行、描述3D場景的語言。到聚餐結(jié)束時,Carey已決心從事于這場新的開拓(后來兩人合辦了Wasabisoft)。1994年初夏,第一次WWW會議期間初步?jīng)Q定,十月份在芝加哥召開第二次WWW會議,也確實是講只留出五個月的時刻。在這段時刻里,能否擬出一個VRML規(guī)范的初步方案?BOF成員和自愿加入開發(fā)新規(guī)范行列的熱心網(wǎng)客信心十足。他們一致認為:在下次會議之前,一個內(nèi)部試用語言規(guī)范一定能完成??偟囊庀蚴牵壕鸵粋€業(yè)已存在的語言加以改造比較穩(wěn)妥,而另起爐灶,從頭開始重干一個全新,則不太可行。事實上,只是用了兩周時刻,Bell就提出了SGI的方案它是一個通過修改的OpenInventor3D模拓文件(Metafile,元文件)格式的子集,在附加一些處理網(wǎng)絡(luò)的相應(yīng)功能和措施。SGI同意將這種新的文件格式向公眾開放不需要任何專利權(quán)和專賣權(quán),供大伙兒使用。還有幾項頗有討論價值的方案也先后提交,參加候選。Pesce和Behlendorf公允的主持了方案的論證會,最后投票結(jié)果,SGI方案贏得了多數(shù)。這就意味著VRML是脫胎于OpenInventor的文件格式。這確實是1994年10月在芝加哥(Chicago)召開的第二次WWW會議上公布VRML1.0的規(guī)范草案。要緊的功能是完成靜態(tài)的3D場景,以及與HTML鏈接的功能和措施。另一位SGI的原OpenInventor的設(shè)計師PaulStrauss開始作一個VRML公共域(publicdomain)的詞解程序(Parser),當時流行于業(yè)界的名字叫QvLib。那個程序的作用是把VRML的可讀文件格式轉(zhuǎn)換成掃瞄器可理解的格式。那個詞解程序于1995年1月公開公布。它能夠安裝到各式各樣的平臺上,隨之,各種掃瞄器恰似雨后春筍般勃然興盛起來。能夠理解和顯示所有VRML文件的掃瞄器,最早依舊出自SGI,由DavidMott和多位Inventor的工程師寫成的WebSpaceNavigator。不久,模板圖形軟件(TemplateGraphicsSoftware)運行于WebSpace,不僅適用于SGI平臺,也適用于多種其它平臺,而且所有版本的WebSpaceNavigator掃瞄器均免費使用。1995年秋,SGI進一步推出了WebSpaceAuthor(供創(chuàng)作的程序)。這是一種Web創(chuàng)作工具,可在場景內(nèi)交互地擺放物體,并改進了場景的功能,還可用于發(fā)表VRML文件?,F(xiàn)在,VRML設(shè)計工作組(VGA,VRMLArchitectureGroup)相聚在一起,討論下一個版本的VRML。1996年初,VRML委員會批閱并討論了若干個VRML2.0版本的建議方案,其中有SGI的動態(tài)境地(MovingWorlds)提案、太陽微系統(tǒng)(SunMicrosystem)的全息網(wǎng)(HollWeb)、微軟公司(Microsoft)的能動VRML(AictiveVRML)、蘋果公司(Apple)的超世境地(Outoftheworld),以及其他多種提案。委員會的專門多成員參與修改和完善這種種方案,特不是MovingWorlds。通過多方努力,最終在2月底以投票裁定。結(jié)果,MovingWorlds以70%選票贏得了絕對多數(shù)。1996年3月,VGA(VRML設(shè)計小組)決定將那個方案改造成為VRML2.0。1996年8月在新奧爾良(NewOrleans)召開的優(yōu)秀3D圖形技術(shù)會議-Siggraph'96上公布通過了規(guī)范的VRML2.0標準。它在VRML1.0的基礎(chǔ)上進行了專門大的補充和完善。比VRML1.0增加了近30個節(jié)點,增強了靜態(tài)世界,使3D場景更加逼真,并增加了交互性、動畫功能、編程功能、原形定義功能。1997年12月VRML作為國際標準正式公布,1998年1月正式獲得國際標準化組織ISO批準(國際標準號ISO/IEC14772-1:1997)。簡稱VRML97。VRML97只是在VRML2.0基礎(chǔ)進行上進行了少量的修正。但它這意味著VRML差不多成為虛擬現(xiàn)實行業(yè)的國際標準。1999年底,VRML的又一種編碼方案X3D草案公布。X3D整合正在進展的XML、JAVA、流技術(shù)等先進技術(shù),包括了更強大、更高效的3D計算能力、渲染質(zhì)量和傳輸速度。以及對數(shù)據(jù)流強有力的操縱,多種多樣的交互形式。2000年6月世界web3D協(xié)會公布了VRML2000國際標準(草案),2000年9月又公布了VRML2000國際標準(草案修訂版)。2002年7月23日,web3d聯(lián)盟日前公布了可擴展3D(X3D)標準草案同時配套推出了軟件開發(fā)工具供人們下載和對那個標準提出意見。這項技術(shù)是虛擬現(xiàn)實建模語言(VRML)的后續(xù)產(chǎn)品,是用XML語言表述的。X3D基于許多重要廠商的支持,能夠與MPEG-4兼容,同時也與VRML97及其之前的標準兼容。它把VRML的功能封裝到一個輕型的、可擴展的核心之中,開發(fā)者能夠依照自己的需求,擴展其功能。X3D標準的公布,為Web3D圖形的進展提供了寬敞的前景。2.3VRML的工作組及其研究目標為了推動VRML技術(shù)的進展,VRML協(xié)會組織了專門多工作組,每個工作組差不多上自愿組織、自我約束、并經(jīng)VRML協(xié)會認可的技術(shù)委員會,負責某個與VRML有關(guān)的專題技術(shù)的研究和實現(xiàn)工作。下面介紹目前已組建的工作組及其研究目標,它們差不多涵蓋了VRML的要緊進展動向。人性動畫工作組(HumanoidAnimationWG)利用VRML表現(xiàn)人類行為特性。色彩保真工作組(ColorFidelityWG)確保采納任何平臺的觀眾所看到的效果都和創(chuàng)作者的原始作品一樣,顏色應(yīng)相當一致。元形式工作組(MetaFormsWG)針對利用形式文法生成的作品,提出一般性的方法論和一般性規(guī)范,使之能夠映射為某種特定形式。首要目標是能夠表示"數(shù)字生命格式"(DigitalLife-Forms)結(jié)構(gòu)和增長。面向?qū)ο髷U展工作組(Object-OrientedExtensionsWG)探討和推動對VRML進行面向?qū)ο髷U展的方法。數(shù)據(jù)庫工作組(DatabaseWG)推進基于VRML商業(yè)應(yīng)用的創(chuàng)建,利用數(shù)據(jù)庫維護VRML內(nèi)容的持久性、升級能力和安全傳輸能力。外部創(chuàng)作接口工作組(ExternalAuthoringInterfaceWG)在VRML境地和外部環(huán)境之間建立標準接口。界面組件工作組(WidgetsWG)為開發(fā)者和用戶提供一套基礎(chǔ)性的、可自由使用的標準用戶界面組件集,并提供支持差不多組件集和所有VRML組件的理論框架。二進制壓縮格式工作組(CompressedBinaryFormatWG)探討并開發(fā)VRML文件的二進制編碼方法,重點是研究為了快速傳送目的而盡量縮小文件尺寸,同時為了快速解碼目的而盡量簡化文件結(jié)構(gòu)。通用媒體庫工作組(UniversalMediaLibrariesWG)為了提高VRML境地的真實感,同時減少網(wǎng)絡(luò)的下載量,而定義一種由駐留本地的媒體元件(紋理、聲音和VRML對象)組成的小型跨平臺媒體庫。同時定義一種統(tǒng)一機制,通過這種機制,VRML內(nèi)容創(chuàng)作者能夠在自己的境地中使用這些媒體元件?;顒泳车毓ぷ鹘M(LivingWorldsWG)為多用戶(包括多個開發(fā)者)應(yīng)用的產(chǎn)生和進化定義概念框架,并確定一組界面。鍵盤輸入工作組(KeyboardInputWG)為了使內(nèi)容創(chuàng)作者能夠在自己的境地中訪問鍵盤輸入,定義一個或多個擴充節(jié)點。一致性工作組(ConformanceWG)為與一致性測試有關(guān)的問題提供一個討論場所,特不地,本組將辨不VRML實現(xiàn)發(fā)生分歧的地點以及相應(yīng)的動作序列。生物圈工作組(BiotaWG)為生命系統(tǒng)(LivingSystem)的研究和學習建立、配備數(shù)字式工具和環(huán)境。分布式交互仿真工作組(DistributedInteractiveSimulationWG)為建立有多廣播能力(Multicast-Capable)的大規(guī)模虛擬環(huán)境(Large-ScaleVirtualEnvironments,LSVEs)確立初始網(wǎng)絡(luò)約定。VRML腳本工作組(VRMLScriptWG)向VRML監(jiān)查組(VRMLReviewBoard,VRB)提供有關(guān)Java和JavaScript的問題列表、修改建議和評論。自然語言處理和動畫工作組(NLP&AnimationsWG)為了使用戶能使用自然語言和VRML動畫形象進行交流,從而使交互更自然,增強用戶和動畫形象之間的信息流淌,研究如何使用“問題/回答”、“命令/響應(yīng)”式的對話以及基于操作系統(tǒng)命令和字符操縱的自然語言。VRML-DHTML集成工作組(VRML-DHTMLIntegrationWG)為VRML和DHTML在文檔對象模型、組件(Component)接口和繪制等三個層次的緊密集成開發(fā)一種概念模型。2.4VRML的研究現(xiàn)狀
虛擬現(xiàn)實技術(shù)的進展,是在網(wǎng)絡(luò)技術(shù)前進基礎(chǔ)上,融合多種技術(shù)的結(jié)果隨著網(wǎng)絡(luò)時代寬帶大規(guī)模應(yīng)用的到來,市場對虛擬現(xiàn)實技術(shù)的應(yīng)用越來越迫切,大有風雨欲來,風滿樓之勢。VRML97公布后,互聯(lián)網(wǎng)上的3D圖形幾乎都使用了VRML。由于技術(shù)的局限性,如帶寬不夠,需要下栽插件掃瞄,文件量大,真實感、交互性需要進一步加強等緣故,最近一二年,許多制作Web3D圖形的軟件公司的產(chǎn)品,并沒有完全遵循VRML97標準,而是使用了專用的文件格式和掃瞄器插件,開發(fā)了比較有用的VR軟件。這些軟件有些比VRML有了進步,在渲染速度、圖像質(zhì)量、造型技術(shù)、交互性以及數(shù)據(jù)的壓縮與優(yōu)化上,都有勝過VRML之處。比如,Cult3D、Viewpoint、GL4Java、Pulse3D、Flatland、Flash、JPEG2000等。這些公司都希望自己的解決方案能成為“事實上的國際標準”。CULT3D、VIEWPOINT、360度環(huán)視等技術(shù)正逐步被應(yīng)用。虛擬現(xiàn)實技術(shù)在國際互聯(lián)網(wǎng)的應(yīng)用已有重大變革。象AUTODESK/DISCREET、MRCROMEDIA、ADOBE等知名IT公司均保持與虛擬現(xiàn)實技術(shù)的緊密聯(lián)系,或有接口,或公布相關(guān)產(chǎn)品,加大在互聯(lián)網(wǎng)的比重。X3D孕育而出。以Blaxxun和ParallelGraphics公司為代表,它們都有各自的VR掃瞄器插件,并各自開發(fā)基于VRML標準的擴展節(jié)點功能,使3D的效果,交互性能更加完美;支持MPEG,Mov、Avi等視頻文件,Rm等流媒體文件,Wav、Midi、Mp3、Aiff等多種音頻文件,F(xiàn)lash動畫文件,多種材質(zhì)效果,支持Nurbs曲線,粒子效果,霧化效果;支持多人的交互環(huán)境,VR眼鏡等硬件設(shè)備;在娛樂、電子商務(wù)等領(lǐng)域都有成功的應(yīng)用,并各自為適應(yīng)X3D的進展,以X3D為核心,有Blaxxun3D等相關(guān)產(chǎn)品。在虛擬場景,尤其是大場景的應(yīng)用方面,以VRML標準為核心的技術(shù)具有獨特的優(yōu)勢。2.5VRML的應(yīng)用VRML在電子商務(wù)、教育、工程技術(shù)、建筑、娛樂、藝術(shù)等領(lǐng)域的廣泛應(yīng)用,將會促使它迅速進展,并成為構(gòu)建虛擬現(xiàn)實應(yīng)用系統(tǒng)的基礎(chǔ)。虛擬現(xiàn)實作為一種全新的人機接口技術(shù),必須研究用戶和計算機之間的協(xié)調(diào)關(guān)系問題,如此一個問題只有通過大量的使用才能逐步解決,VRML以因特網(wǎng)作為應(yīng)用平臺,最有希望成為構(gòu)筑虛擬現(xiàn)實應(yīng)用的差不多構(gòu)架。自從1994年以來,歐洲數(shù)字都市會議每年進行一次,最近的數(shù)字都市的活動中加入了三維技術(shù),基于VRML的實驗性數(shù)字都市要緊有數(shù)字化赫爾辛基、柏林、華盛頓特區(qū)、洛杉磯和京都。我國上海交通大學ICHI實驗室在這方面也作了大量研究。國內(nèi)還開發(fā)過一些基于VRML97的應(yīng)用系統(tǒng),如浙江公眾信息產(chǎn)業(yè)有限公司的3Dworld。例如在教育上,VRML不僅僅是HTML功能更強的替代品,其潛在意義在于突破上述基于WWW的教學模型建立更自然、更真實的虛擬教育環(huán)境。在這種環(huán)境中學生能夠以掃瞄探究的方式汲取知識,如進入虛擬太空學習天文知識,利用虛擬地球?qū)W習地理知識,穿過歷史長廊與歷史人物交流,進入分子世界游歷化學殿堂等等,這些曾經(jīng)是夢想中的學習方式都能夠逐步實現(xiàn)。在那個虛擬教育世界中,甚至能夠有利用VRML制作的動畫人物扮演教師,其面部表情和形體動作利用動作跟蹤系統(tǒng)捕捉下來,如此得到的講課節(jié)目將是三維的,更重要的是它不像視頻節(jié)目那樣需要大量的存儲量和網(wǎng)絡(luò)帶寬,用戶通過Modem和電話線即可收看這種節(jié)目,其有關(guān)試驗最近差不多取得成功。假如把這種方式擴大到教學雙方,則可實現(xiàn)具有實時交互性的虛擬教學——教師操縱的虛擬教師和學生操縱的虛擬學生就能夠在一個虛擬教室中相互交流。VRML將制造一種融多媒體、三維圖形、網(wǎng)絡(luò)通訊、虛擬現(xiàn)實為一體的新型媒體,兼具先進性和普及性,是關(guān)懷三維圖形、多媒體、新一代網(wǎng)頁開發(fā)和虛擬現(xiàn)實技術(shù)的人士應(yīng)緊密注意的。2.5.1網(wǎng)上虛擬實驗室網(wǎng)上虛擬實驗室,也稱網(wǎng)上仿真實驗室。它是通過WWW創(chuàng)建一個可視化三維環(huán)境,其中每一個可視化的三維物體代表一種試驗對象,通過鼠標點擊等操作,用戶能夠進行虛擬操縱、操作等以達到試驗?zāi)康摹>W(wǎng)上虛擬試驗的要緊優(yōu)點:(1)使用方便,無須回到現(xiàn)實的實驗室,隨時隨地只要能上網(wǎng)就能夠開展試驗。(2)成本低廉,與現(xiàn)實實驗室相比而言,大多數(shù)網(wǎng)上虛擬實驗室的成本都要低專門多。(3)減少干擾,能夠幸免現(xiàn)實實驗室的無關(guān)干擾,如:接觸不良,儀器故障等。(4)應(yīng)用廣泛,以計算機網(wǎng)絡(luò)為載體,網(wǎng)上虛擬實驗室適應(yīng)性好,收益面廣。目前,網(wǎng)上虛擬實驗室差不多專門多,包括從力學、電磁學、熱學、化學試驗等方面。例如:美國俄勒岡大學物理實驗室。美國俄勒岡大學物理系(UniversityofOregon,DepartmentofPhysics)主辦的虛擬物理實驗網(wǎng)站,(網(wǎng)址:/vlab/)。其要緊內(nèi)容分為四大部分:天體物理、能量與環(huán)境、力學和熱學,該網(wǎng)站的主頁如圖4.22所示。圖4.22美國俄勒岡大學物理系的虛擬物理實驗網(wǎng)站界面2.5.2網(wǎng)上觀景實例為了介紹某一景點,經(jīng)常需要將觀看現(xiàn)實的景色,然而又無法實現(xiàn)實地考察,這時利用網(wǎng)上觀景網(wǎng)站是一種專門有效的方法。目前,網(wǎng)上觀景站點也比較多,例如:故宮博物院,網(wǎng)址:/beijing/gugong.htm,該網(wǎng)站是一個應(yīng)用全景環(huán)視圖像技術(shù)制作的網(wǎng)上虛擬現(xiàn)實景觀展示網(wǎng)站,其中提供了大量的三維全景環(huán)視圖,觀眾能夠用鼠標操縱三維圖的方向和角度。其界面如圖4.23所示。圖4.23“故宮博物院”界面2.5.3網(wǎng)上物體展示網(wǎng)上虛擬現(xiàn)實技術(shù)除了展示全景畫面以外,還能夠用來有效地表現(xiàn)一個物體對象的外觀和內(nèi)部情況,因此,在展示實物的外觀與內(nèi)景時也經(jīng)常會用到網(wǎng)上虛擬現(xiàn)實技術(shù)。比如:上海杰圖軟件技術(shù)有限公司已成功開發(fā)出“三維全景制作軟件”、“360度虛擬物體制作軟件”和“房地產(chǎn)展示制作軟件”。其網(wǎng)址為:/case/pano/3d/3d1.html#,圖4.24為“紀念館大廳”的虛擬全景。圖4.24“紀念館大廳”的虛擬全景2.5.4萬維網(wǎng)上有關(guān)VRML技術(shù)的站點專門多,但萬維網(wǎng)上站點變化專門快,有些往常專門熱門的站點現(xiàn)在已消逝?,F(xiàn)提供幾個目前尚能訪問到的有關(guān)站點供大伙兒參考:/Web3D協(xié)會:Web3D協(xié)會是虛擬現(xiàn)實技術(shù)的權(quán)威機構(gòu)。最新的VRML技術(shù)規(guī)范由它在網(wǎng)站上公布。同時在網(wǎng)站上也能夠了解業(yè)界新聞、技術(shù)支持、源代碼資源、協(xié)會成員等。
VRML.org中國虛擬空間設(shè)計中心:中國國內(nèi)關(guān)于虛擬現(xiàn)實的權(quán)威站點,致力于虛擬現(xiàn)實技術(shù)的推廣和應(yīng)用。除了有業(yè)界新聞、規(guī)范標準、學習教程、精品實例、相關(guān)資源鏈接,還有商業(yè)型網(wǎng)站的策劃和建設(shè),三維產(chǎn)品展示系統(tǒng)的構(gòu)架等。
/apply/VRML.htm中國虛擬現(xiàn)實秀:中國國內(nèi)專業(yè)的虛擬現(xiàn)實技術(shù)網(wǎng)站,內(nèi)容專門豐富。虛擬無忌網(wǎng)()的目標是:為虛擬現(xiàn)實應(yīng)用制造一個極其豐富的共享資源平臺和交流平臺。目前該網(wǎng)站共分五大模塊,緊密結(jié)合虛擬現(xiàn)實,所容納的技術(shù)達幾十種之多,涉及2D交互、3D交互、虛擬現(xiàn)實、多媒體、視頻等幾大相互交錯的技術(shù)領(lǐng)域。并努力展現(xiàn)當前最新的技術(shù)和信息。其網(wǎng)站界面如圖4.20所示。圖4.20虛擬無忌網(wǎng)的界面/bbs/2685VRML論壇:Web形式的技術(shù)論壇,VRML技術(shù)的高手經(jīng)常光顧。是探討交流技術(shù)的好去處。
/天極網(wǎng):天極網(wǎng)關(guān)于VRML的最新的技術(shù)資料,是以文章的形式編排的,從VRML的進展史到VRML的深入應(yīng)用都有詳細的介紹。
http://vrml網(wǎng)點雜志,學習、研究VRML的好站點。
/~crispen/vrml:可下載VRML教材及有關(guān)VRML理論,站點內(nèi)容特不豐富、多彩。/~nadeau/courses/siggraph98vrml/vrml97/VRML資源展示MyGallery的網(wǎng)址為/~yll-tcc/,是一個VRML的圖庫,并包含有相關(guān)的VRML基礎(chǔ)知識及其源程序。其界面如圖4.21所示。圖4.21MyGallery的界面//soft/list.asp?id=1322下載相關(guān)軟件HYPERLINK返回
三、VRML編程基礎(chǔ)3.1VRML的工作原理VRML是一種用在Internet和Web超鏈上的,多用戶交互的,獨立于計算機平臺的,網(wǎng)絡(luò)虛擬現(xiàn)實建模語言。虛擬世界的顯示、交互及網(wǎng)絡(luò)互連都能夠用VRML來描述。VRML的設(shè)計是從在WEB上觀賞實時3D圖象開始的。VRML掃瞄器既是插件,又是關(guān)心應(yīng)用程序,依舊獨立運行的應(yīng)用程序,它是傳統(tǒng)的虛擬現(xiàn)實中同樣也使用的實時3D著色引擎。這使得VRML應(yīng)用從三維建模和動畫應(yīng)用中分離出來,在三維建模和動畫應(yīng)用中能夠預先對前方場景進行著色,然而沒有選擇方向的自由。VRML提供了6+1度的自由,用戶能夠沿著三個方向移動,也能夠沿著三個方向旋轉(zhuǎn),同時還能夠建立與其它3D空間的超鏈接。因此VRML是超空間的。VRML定義了一種把3D圖形和多媒體集成在一起的文件格式。從語法角度看,VRML文件是顯式地定義和組織起來的3D多媒體對象集合;從語義角度看,VRML文件描述的是基于時刻的交互式3D多媒體信息的抽象功能行為。VRML文件描述的基于時刻的3D空間稱為虛擬境地(VirtualWorld),簡稱境地,所包含的圖形對象和聽覺對象可通過多種機制動態(tài)修改。VRML文件能夠包含對其他標準格式文件的引用。能夠把JPEG、PNG和MPEG文件用于對象紋理映射,把WAV和MIDI文件用于在境地中播放的聲音。另外,還能夠引用包含Java或ECMAScript代碼的文件,從而實現(xiàn)對象的編程行為。所有這些差不多上由其他標準提供的,之因此在VRML中選用它們,是因為它們在Internet上的廣泛應(yīng)用。VRML97規(guī)范描述了它們在VRML中的用法。VRML使用場景圖(SceneGraph)數(shù)據(jù)結(jié)構(gòu)來建立3D實境,這種數(shù)據(jù)結(jié)構(gòu)是以SGI開發(fā)的OpenInventor3D工具包為基礎(chǔ)的一種數(shù)據(jù)格式。VRML的場景圖是一種代表所有3D世界靜態(tài)特征的節(jié)點等級:幾何關(guān)系、質(zhì)材、紋理、幾何轉(zhuǎn)換、光線、視點以及嵌套結(jié)構(gòu)。幾乎所有生產(chǎn)廠商,不管是CAD、建模、動畫、VR,依舊VRML,他們的結(jié)構(gòu)核心都有場景圖。境地中的對象及其屬性用節(jié)點(Node)描述,節(jié)點按照一定規(guī)則構(gòu)成場景圖(SceneGraph),也確實是講,場景圖是境地的內(nèi)部表示。場景圖中的第一類節(jié)點用于從視覺和聽覺角度表現(xiàn)對象,它們按照層次體系組織起來,反映了境地的空間結(jié)構(gòu)。另一類節(jié)點參與事件產(chǎn)生和路由機制,形成路由圖(RouteGraph),確定境地隨時刻的推移如何動態(tài)變化。VRML文件的解釋、執(zhí)行和呈現(xiàn)通過掃瞄器實現(xiàn),這與利用掃瞄器顯示HTML文件的機制完全相同。掃瞄器把場景圖中的形態(tài)和聲音呈現(xiàn)給用戶,這種視聽覺呈現(xiàn)即所謂的虛擬世界(境地)。用戶通過掃瞄器獲得的視聽覺效果如同從某個特定方位體驗到的,境地中的這種位置和朝向稱為取景器(Viewer)。VRML的訪問方式是基于客戶/服務(wù)器模式的。其中服務(wù)器提供VRML文件及支持資源(圖像、視頻、聲音等),客戶端通過網(wǎng)絡(luò)下載希望訪問的文件,并通過本地平臺上的VRML掃瞄器交互式地訪問該文件描述的虛擬境地。由于掃瞄器是本地平臺提供的,從而實現(xiàn)了平臺無關(guān)性。下圖描述了VRML的工作方式。VRML是一個開發(fā)標準,為了加強協(xié)作,幸免技術(shù)重復和市場沖突,而鼓舞其他技術(shù)引用VRML或成為VRML的一部分。與VRML關(guān)系緊密的三項技術(shù)是Java3D、MPEG-4和Chrome。其中,Java3D和VRML都把3DWeb作為關(guān)鍵應(yīng)用對象,前者的優(yōu)勢在于程序設(shè)計,后者的優(yōu)勢在于場景構(gòu)造,二者在可編程性3DWeb應(yīng)用方面緊密合作。MPEG-4面向基于內(nèi)容的交互式視訊應(yīng)用,能夠為VRML提供流技術(shù)、壓縮和音響同步技術(shù),而MPEG-4用VRML來描述3D內(nèi)容。在2D頁面集成方面,能夠探究VRML和Microsoft的Chrome協(xié)作的可能性。理解VRML的工作原理十分關(guān)鍵的一點是:VRML文件最直接的執(zhí)行者是VRML掃瞄器。VRML文件是以擴展名WRL結(jié)尾的一種用來描述幾何形體的ASCII文本文件,它不需要任何編譯。當VRML文件被執(zhí)行時,系統(tǒng)首先加載一個內(nèi)嵌的VRML掃瞄器,該掃瞄器將VRML語言中的信息解釋成空間中的目標幾何體,如球體、長方體等;同時該掃瞄器提供實時地顯示,并不斷地刷新,因此用戶在計算機上便能夠產(chǎn)生一種活動場景的感受。3.2VRML掃瞄器要想觀看VRML文件生成的三維交互世界,在硬件上,無需其他的設(shè)備,目前的PC機完全能夠滿足要求;軟件上,只需要在客戶端安裝VRML插件,即VRML掃瞄器,目前最流行的VRML掃瞄器是:微軟內(nèi)嵌在IE4.0以上版本的MiscrosoftVRML2.0Viewer掃瞄器SGI公司提供的Cosmoplayer掃瞄器ParallelGraphics公司的CortonaVRMLClient掃瞄器()blaxxun公司的blaxxunContact掃瞄器3.3VRML制作工具3.3.1VRML代碼編輯軟件1.使用文本編輯器。由于VRML的文件格式是一般的文本文件,因而差不多上能夠使用任何純文本編輯器進行編寫創(chuàng)作,如:記事本、寫字板等。然而,由于純文本編輯器不具有*.wrl文件自動格式化功能,因此假如想編寫具有清晰層次感、可讀性強的VRML文件比較困難;且純文本編輯器沒有自動檢錯功能,在語法糾錯方面存在專門大不便。2.使用專門的文件編輯器。常用的VRML源碼編輯軟件有ParallelGraphics的VrmlPad(/products/vrmlpad)和ModelworksSoftware的sitePadPro(/downlodas.html),最值得推舉的編輯器是:VrmlPad2.0。它具有強大的程序編寫輔助功能,代碼編寫效率專門高。另外對編輯時出現(xiàn)的語法錯誤,自動用紅色波浪線給予提示,與用純文本編輯工具相比,能夠省去大量糾錯時刻。3.3.2可視化VRML制作工具1、用傳統(tǒng)的通用三維制作軟件如3dsmax、Maya和Cinema4D,都能將三位靜態(tài)場景或三維動畫轉(zhuǎn)換為vrml格式。使用3dsmax等圖形轉(zhuǎn)換工具。關(guān)于復雜的造型,直接編寫代碼實現(xiàn)較困難,可采納3dsmax等工具進行轉(zhuǎn)換。3dsmax是一個功能強大三維模型構(gòu)建軟件,應(yīng)用3dsmax強大造型功能,能夠構(gòu)建出所需的復雜三維模型。在3dsmax中構(gòu)建出所需的三維模型后,通過3dsmax中的File中Export命令導出為*.wrl格式的文件,再進行適當?shù)男薷木涂傻玫轿覀兯璧哪P汀?、用VRML制作專用工具軟件ParallelGraphics公司的InternetSpaceBuilder(/products/isb)Silicon公司的中文版CosmoWorlds(最優(yōu)秀)(/software/cosmo/worlds.html)Virtul公司的3DWebSiteBuliderMacromeida公司的Extreme3D3.4VRML2.0的差不多語法知識3.4.1VRML文件結(jié)構(gòu)在那個地點,我們通過一個簡單的VRML文檔的例子,對VRML文檔中最差不多的格式標記進行介紹。該例子是在屏幕上建立一個不顯示頂面的杯狀圓柱體,其源文件如下所示:#VRMLV2.0utf8Shape{appearanceAppearance{materialMaterial{}#用默認材質(zhì)和顏色#VRMLV2.0utf8Shape{appearanceAppearance{materialMaterial{}#用默認材質(zhì)和顏色diffuseColor1.01.00.0}geometryCylinder{radius3height6sideTRUEtopFALSEbottomTRUE}}#VRML文件頭通知掃瞄器該文檔由VRML的2.0版本編寫的,且符合ISO的UTF-8編碼標準外形節(jié)點是幾何對象最差不多的組節(jié)點,它把各個松散的幾何點拉到虛擬空間中的相應(yīng)位置,形成一個規(guī)則的幾何體。外形節(jié)點是幾何對象最差不多的組節(jié)點,它把各個松散的幾何點拉到虛擬空間中的相應(yīng)位置,形成一個規(guī)則的幾何體。定義外觀定義外觀定義材質(zhì)定義顏色定義形狀為圓柱定義形狀為圓柱“radius3”表示給予半徑值為3?!癶eight6”表示給予高值為6“sideTRUE”表示圓柱壁可視“topFALSE”表示頂面不可視“bottomTRUE”表示底面可視VRML2.0文件的擴展名必需為wrl或wrz例如:car.wrl(一般格式),bus.wrz(壓縮格式,可用Winzip等打開)。一個VRML文檔,通常由4部分組成。①文件頭:它是提供給掃瞄器文件的版本信息,VRML文檔中開頭的一行,用來通知掃瞄器該文檔所遵循的VRML版本。例如“#VRML1.0utf8”②節(jié)點:是VRML文件的差不多組成元素。VRML的差不多語句為節(jié)點語句,VRML有54個節(jié)點,能夠把它分為以下幾類:shape(形狀)節(jié)點描述物體在空間中的幾何形狀;property(性質(zhì))節(jié)點定義形狀節(jié)點的渲染方式(顏色,表面紋理等);group(成組)節(jié)點將多個其他節(jié)點組合成一個節(jié)點,便于統(tǒng)一處理;environment(環(huán)境效果)節(jié)點例如各種性質(zhì)的光源等。此外,VRML語言還定義了一些提供專門功能的節(jié)點,例如超鏈接、碰狀檢測等。每一個節(jié)點語句均以節(jié)點名開頭,后面帶有一個花擴弧串,里面給出參數(shù)和參數(shù)值,參數(shù)稱為字段或域(field),參數(shù)值稱為字段值或域值。③字段(域):用來描述及改變節(jié)點屬性的大小,它存儲著節(jié)點的各種值。填寫字段時,首先給出字段名,再給出字段的具體內(nèi)容,字段的具體內(nèi)容有些是具體數(shù)值,如高度、半徑、顏色、長寬高尺寸,有些則是另一個節(jié)點語句,因而節(jié)點語句能夠多層鑲套,即有多層花擴弧。字段名均以小寫開頭,節(jié)點名均以大寫開頭有時字段名和節(jié)點名差不多相同,如appearance和Appearance字段值從數(shù)據(jù)結(jié)構(gòu)上,能夠分成兩類,其中一類只包含一個值(一個值能夠是一個數(shù)、一個矢量、或者甚至是一幅圖像),其數(shù)值類型命名以SF開頭;另一類能夠包含多個值,能夠看作數(shù)組,以MF開頭。④注釋:VRML文件中的注釋語句是以“?!碧栭_始的字符串,范圍是從“?!碧柕竭@一行的行尾,不阻礙文件的執(zhí)行。3.4.2差不多造型的生成預備知識:VRML的坐標系在VRML場景中設(shè)置物體需要有明確的坐標,在同一個場景中,有一個統(tǒng)一的坐標系。那個坐標系是一個右手坐標系,在初始時(即觀看者沒有移動位置和改變視角)該坐標系的X軸為沿屏幕水平向右,Y軸為沿屏幕垂直向上,Z軸為從屏幕指向用戶。當某個幾何體的中心不在屏幕中心時,就需要用Transform節(jié)點移動坐標系。(1)差不多形體的生成:Shape節(jié)點所有形體及文字均用到Shape節(jié)點,它有兩個參數(shù):由appearance給出形體的外觀效果,如Material節(jié)點(材質(zhì))Texture節(jié)點(紋理)TextureTransform節(jié)點(紋理變換)由geometry給出形體的幾何特征。如:Box節(jié)點(長方體)Cylinder節(jié)點(圓柱體)Cone節(jié)點(圓錐體)Sphere節(jié)點(球體)Text節(jié)點(文本)(2)復雜形體的生成1.Coordinate節(jié)點用于定義空間的坐標點數(shù)組2.Extrusion節(jié)點用于生成一個拉伸體常用的字段有:crossSection通過一組頭尾相連的點,給出一個斷面形狀spine給出一個拉伸線scale對形體進行變形3.ElevationGrid節(jié)點定義一個網(wǎng)狀面常用的字段有:xDimensionX方向上點的個數(shù)zDimensionZ方向上點的個數(shù)xSpacingX方向上網(wǎng)格的尺寸zSpacingZ方向上網(wǎng)格的尺寸height各網(wǎng)格點的高度4.PointSet節(jié)點定義一組空間點字段有:coord用Coordinate節(jié)點定義點的坐標color用Color節(jié)點定義點的顏色(也能夠不給出color而直接用Shape的appearance定義)5.IndexedLineSet節(jié)點定義折線段常用的字段有:color定義顏色coord定義端點的坐標colorIndex給出選擇顏色的方式coordIndex給出選擇端點的方式colorPerVertex用于指定顏色是按端點給依舊按線段給coord提供了需要的點數(shù)組(N個點,則各個點的下標從0到N-1)coordIndex則給出了點的使用方式以下標的形式任意選擇所用的點,構(gòu)造一個或多個折線段每個折線段之間用-1分開線顏色的五種處理方式:①不給出color字段,直接用Shape節(jié)點的appearance來定義(用emissiveColor),例如:Shape{
appearanceAppearance{materialMaterial{emissiveColor110}}geometryIndexedLineSet{coordCoordinate{point[-2-20,2-20,220,-220]}coordIndex[01230]}}②可使顏色在線段上發(fā)生漸變colorPerVertex為TRUE(缺?。┙o出一個color數(shù)組,顏色的個數(shù)和點的個數(shù)相同,每個點均有特定的顏色顏色按colorIndex提供的方式選擇。例如:Shape{geometryIndexedLineSet{coordCoordinate{point[111,232,143,421,-1-22,334,523]}coordIndex[01-112-123-134-145-156]colorColor{color[111,001,011,100,100,101,110]}colorIndex[63-166-133-133-155-155]}
}③可使顏色在線段上發(fā)生漸變colorPerVertex為TRUE(缺?。┙o出一個color數(shù)組,顏色的個數(shù)和點的個數(shù)相同,每個點均有特定的顏色顏色的選擇按coordIndex的下標選擇(coordIndex代替colorIndex)例如的:Shape{geometryIndexedLineSet{coordCoordinate{point[111,232,143,421,-1-22,334,523]}coordIndex[01-112-123-134-145-156]colorColor{color[100,001,010,110,011,101,111]}}
}④每一個折線段擁有一種顏色,顏色從顏色數(shù)組中選擇,這時:colorPerVertex為FALSE給出一個color數(shù)組顏色通過colorIndex選擇并給予相應(yīng)的折線段例如:Shape{geometryIndexedLineSet{coordCoordinate{point[-511,-432,-543,-121,-723]}coordIndex[01234]colorColor{color[011]}colorIndex[0]colorPerVertexFALSE}
}⑤每一個折線段擁有一種顏色,但不提供colorIndex字段,這時:colorPerVertex為FALSE給出一個color數(shù)組顏色按順序分配給各個折線段例如:Shape{geometryIndexedLineSet{coordCoordinate{point[-511,-432,-543,-121,-723]}coordIndex[012-1234]colorColor{color[011,111]}colorPerVertexFALSE}}
6.IndexedFaceSet節(jié)點用來生成自定義面常用的字段有:color定義顏色coord定義端點的坐標colorIndex給出選擇顏色的方式coordIndex給出選擇端點的方式colorPerVertex用于指定顏色是按端點給依舊按線段給coord提供了需要的頂點數(shù)組(N個點,則各個點的下標從0到N-1)coordIndex則給出了頂點的使用方式以下標的形式任意選擇所用的點,構(gòu)造面每個面之間用-1分開面顏色的五種處理方式:
①不給出color字段,直接用Shape節(jié)點的appearance來定義(用emissiveColor)②可使顏色在面上發(fā)生漸變colorPerVertex為TRUE(缺?。┙o出一個color數(shù)組顏色按colorIndex提供的方式選擇③可使顏色在面上發(fā)生漸變colorPerVertex為TRUE(缺?。┙o出一個color數(shù)組,顏色的個數(shù)和點的個數(shù)相同,每個點均有特定的顏色顏色的選擇按coordIndex的下標選擇(coordIndex代替colorIndex)④每一個面擁有一種顏色,顏色從顏色數(shù)組中選擇colorPerVertex為FALSE給出一個color數(shù)組顏色通過colorIndex選擇并給予相應(yīng)的折線段⑤每一個折線段擁有一種顏色,但不提供colorIndex字段,這時:colorPerVertex為FALSE給出一個color數(shù)組顏色按順序分配給各個折線段3.4.3VRML動畫程序編程1.VRML動畫編程的基礎(chǔ)知識1.Transform節(jié)點作用:建立局部坐標系,對形體進行坐標變換,從而使形體發(fā)生移動、旋轉(zhuǎn)、比例變化常用的字段:rotation提供旋轉(zhuǎn)的角度(四個數(shù)字,頭三個數(shù)和原點構(gòu)造旋轉(zhuǎn)軸,第四個數(shù)給出旋轉(zhuǎn)角度,右手逆時針為正方向)scale提供比例放大的系數(shù)translation提供平移的數(shù)值children提供坐標變換的對象,能夠是形體或另一個局部坐標系利用Transform的translation字段,實例:使形體由中間移到左邊#VRMLV2.0utf8
Transform{
translation-500
childrenShape{
geometryBox{}
appearanceAppearance{materialMaterial{diffuseColor100}}
}
}
Background{skyColor111}//修改背景色
#程序結(jié)束2.Group節(jié)點作用:無坐標變換功能的Transform節(jié)點,因而能夠用Transform替代常用的字段:children提供Group的組成部分
3.DEF和USE作用:用于給節(jié)點語句命名,從而重復使用,DEF和USE縮短程序的好方法
4.Anchor節(jié)點作用:使多個VRML產(chǎn)生鏈接常用的字段:url提供鏈接的文件名description提供鏈接文件的講明parameter提供鏈接的方式(開新窗口或覆蓋舊的)children產(chǎn)生鏈接的載體(鼠標應(yīng)點擊的對象)5.Billboard節(jié)點作用:產(chǎn)生廣告牌效果常用的字段:axisOfRotation旋轉(zhuǎn)軸,(三個常用的數(shù)值:010、100、000)children(產(chǎn)生廣告牌效應(yīng)的形體或文字)6.Viewpoint節(jié)點作用:確定觀看位置常用的字段:orientation提供觀看角度position提供觀看位置7.Background節(jié)點作用:設(shè)置顯示背景,也能夠在背景上設(shè)置圖片,最多可貼六張圖片常用的字段:skyColor設(shè)置背景為白色8.Fog節(jié)點作用:使形體產(chǎn)生霧化效果常用字段:color設(shè)置霧的顏色visibilityRange給出霧的阻礙范圍
(當形體離觀看點的距離大于此值時,形體的顏色與霧相同)9.NavigationInfo節(jié)點作用:設(shè)定程序運行方式,要緊有:ANY、WALK、EXAMINE、FLY、NONE
(2)VRML動畫編程初步實例:如何使一個立方體動起來?步驟1:編寫一個立方體,設(shè)定背景為白色,程序通過Transform節(jié)點,改變了形體的原始位置#VRMLV2.0utf8
Transform{
translation-500
childrenShape{
geometryBox{}
appearanceAppearance{materialMaterial{diffuseColor100}}
}
}
Background{skyColor111}#程序結(jié)束步驟2:定義一個時刻周期TS,用的是一個時刻傳感器節(jié)點TimeSensor里面給出周期數(shù)值字段cycleInterval,通過loop字段指定是否循環(huán)#VRMLV2.0utf8Transform{
translation-500
childrenShape{
geometryBox{}
appearanceAppearance{materialMaterial{diffuseColor100}}
}
}#下面四行是增加的部分
DEFTSTimeSensor{
cycleInterval10
loopTRUE
}Background{skyColor111}步驟3:利用PositionInterpolator節(jié)點,定義形體的運動軌跡,用DEF命名為PI意思是在十秒鐘內(nèi),形體由(-500)移到(500),再回到(-500)#VRMLV2.0utf8Transform{
translation-500
childrenShape{
geometryBox{}
appearanceAppearance{materialMaterial{diffuseColor100}}
}
}DEFTSTimeSensor{
cycleInterval10
loopTRUE
}#下面四行是增加的內(nèi)容
DEFPIPositionInterpolator{
key[00.51]
keyValue[-500,500]
}Background{skyColor111}步驟4:利用DEF給立方體所在的局部坐標系命名為T#VRMLV2.0utf8#下面一行是改變的內(nèi)容,只加了頭幾個字符
DEFTTransform{
translation-500
childrenShape{
geometryBox{}
appearanceAppearance{materialMaterial{diffuseColor100}}
}
}DEFTSTimeSensor{
cycleInterval10
loopTRUE
}DEFPIPositionInterpolator{
key[00.51]
keyValue[-500,500]
}Background{skyColor111}步驟5:通過兩條ROUTE語句,使形體動起來ROUTETS.fraction_changedTOPI.set_fraction
(時刻的變化傳到位置內(nèi)插器)ROUTEPI.value_changedTOT.translation
(位置內(nèi)插器將特定時刻的位置數(shù)值傳給形體所在的局部坐標系)下面是最終的程序:#VRMLV2.0utf8DEFTTransform{
translation-500
childrenShape{
geometryBox{}
appearanceAppearance{materialMaterial{diffuseColor100}}
}
}DEFTSTimeSensor{
cycleInterval10
loopTRUE
}DEFPIPositionInterpolator{
key[00.51]
keyValue[-500,500-500]
}#下面兩行是增加的內(nèi)容
ROUTETS.fraction_changedTOPI.set_fraction
ROUTEPI.value_changedTOT.translationBackground{skyColor111}提示:路由語句作用:VRML動畫及交互作用的橋梁內(nèi)容:ROUTE事件出TO事件進編寫步驟:關(guān)于發(fā)出事件的傳感器節(jié)點(如TimeSensor)和接收事件的節(jié)點
(如內(nèi)插器節(jié)點),編寫具體的內(nèi)容,并用DEF命名關(guān)于接收事件的其它節(jié)點(如定義局部坐標系的TransformGroup)
也用DEF命名,并依照具體需要,將收到的事件進傳給具體參數(shù),
從而產(chǎn)生動畫效果注意1:同一行ROUTE語句的事件進(eventIn)和事件出(eventOut)的類型必須相同注意2:上面介紹的兩個ROUTE語句:ROUTETS.fraction_changedTOPI.set_fraction
ROUTEPI.value_changedTOT.translation也能夠?qū)懗桑篟OUTETS.fraction_changedTOPI.set_fraction
ROUTEPI.value_changedTOT.translation也確實是講:_changed(用于事件出)、set_(用于事件進)可寫可不寫,不阻礙程序的運行(3)用于VRML動畫編程的內(nèi)插器節(jié)點語句用于VRML動畫編程的內(nèi)插器節(jié)點名稱最后均為Interpolator
1.利用ColorInterpolator產(chǎn)生顏色的動態(tài)變化步驟1:給需要變化顏色的形體材值Material命名...DEFCOLORAMaterial{diffuseColor100}...步驟2:定義一個TimeSensor,確定變化周期及循環(huán)方式DEFTSTimeSensor{...}步驟3:定義一個ColorInterpolator節(jié)點,給出顏色變化的具體方式DEFCIColorInterpolator{
key[....]
keyValue[....]
}步驟4:給出兩個ROUTE語句:一個將TimeSensor的變化傳給ColorInterpolator
一個將ColorInterpolator的變化傳給Material2.利用CoordinateInterpolator使形體產(chǎn)生動態(tài)變形作用:可用來動態(tài)改變形體的坐標,要緊用在下面節(jié)點上:IndexedFaceSet、IndexedLineSet、PointSet、Extrusion步驟1:給一個Coordinate節(jié)點命名,作為相應(yīng)形體coord字段的具體內(nèi)容...DEFAAACoordinate{point[...]}...步驟2:定義一個TimeSensor,確定變化周期及循環(huán)方式DEFTSTimeSensor{...}步驟3:定義一個CoordinateInterpolator節(jié)點,給出坐標變化的具體方式DEFCICoordinateInterpolator{
key[....]
keyValue[....]
}步驟4:給出兩個ROUTE語句:一個將TimeSensor的變化傳給CoordinateInterpolator
一個將CoordinateInterpolator的變化傳給Coordinate3.利用OrientationInterpolator動態(tài)改變觀看方向,或這改變形體的方向作用:可用來動態(tài)改變Viewpoint節(jié)點的方向(ex5_02.wrl)
或用來動態(tài)改變形體的方向,使形體旋轉(zhuǎn)(ex6_05.wrl)步驟1:給需要變化方向的Viewpoint節(jié)點命名,或者給需要旋轉(zhuǎn)形體所在的Transform節(jié)點命名DEFAAATransform{...}DEFAAAViewpoint{...}步驟2:定義一個TimeSensor,確定變化周期及循環(huán)方式DEFTSTimeSensor{...}步驟3:定義一個OrientationInterpolator節(jié)點,給出變化的具體方式DEFOIOrientationInterpolator{
key[....]
k
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《學前教育概述》課件
- 單位管理制度集合大合集【人力資源管理篇】十篇
- 單位管理制度分享匯編【員工管理篇】十篇
- 單位管理制度分享大全【人員管理篇】
- 單位管理制度范例選集【員工管理】
- 單位管理制度范例合集【人力資源管理篇】十篇
- 單位管理制度呈現(xiàn)合集【員工管理篇】
- 單位管理制度呈現(xiàn)大合集【人事管理】十篇
- 《微點精析》考向19 文化常識 高考語文一輪復習考點微專題訓練(原卷+解析)
- 第4單元 民族團結(jié)與祖國統(tǒng)一(B卷·能力提升練)(解析版)
- 2023-2024學年廣東省深圳市光明區(qū)高二(上)期末地理試卷
- 【8地RJ期末】安徽省蕪湖市弋江區(qū)2023-2024學年八年級上學期期末考試地理試卷(含解析)
- 2025年春季幼兒園后勤工作計劃
- 鑄牢中華民族共同體意識的培養(yǎng)路徑
- 世界各大洲國家中英文、區(qū)號、首都大全
- 2024-2030年中國波浪發(fā)電商業(yè)計劃書
- 《中國腎性貧血診療的臨床實踐指南》解讀課件
- 申論公務(wù)員考試試題與參考答案(2024年)
- 2024年人教版八年級數(shù)學上冊期末考試卷(附答案)
- 電大本科《西方經(jīng)濟學》期末試題標準題庫及答案(試卷號:1026)
- 泰山產(chǎn)業(yè)領(lǐng)軍人才申報書
評論
0/150
提交評論