基于Silverlight的3D虛擬教學(xué)系統(tǒng)關(guān)鍵技術(shù)研究
摘 要:
摘 要:為了提高教學(xué)中教學(xué)的互動(dòng)性、浸沒感,采用云端計(jì)算技術(shù),建立基于RIA虛擬教學(xué)系統(tǒng)。完成系統(tǒng)的關(guān)鍵設(shè)計(jì)是渲染引擎的構(gòu)建與實(shí)現(xiàn),采用目前客戶端GPU加速技術(shù)和瀏覽器插件技術(shù),解決了3D虛擬教學(xué)系統(tǒng)無客戶端富互聯(lián)網(wǎng)應(yīng)用渲染問題。通過對現(xiàn)代高新技術(shù)和渲染引擎的分析研究,引入云端渲染技術(shù),實(shí)現(xiàn)了虛擬教學(xué)系統(tǒng)終端的3D呈現(xiàn)。通過在虛擬教學(xué)系統(tǒng)中的實(shí)例測試,證明了該引擎的正確性和有效性。該引擎的實(shí)現(xiàn),為進(jìn)一步完善虛擬教學(xué)系統(tǒng)提供了基礎(chǔ)與保障,為開發(fā)基于互聯(lián)網(wǎng)的富客戶端3D虛擬教學(xué)系統(tǒng)提供了參考。
關(guān)鍵詞:
關(guān)鍵詞:虛擬現(xiàn)實(shí) 虛擬教學(xué)系統(tǒng) Silverlight 富客戶端
虛擬現(xiàn)實(shí)應(yīng)用于教育是教育技術(shù)發(fā)展的一個(gè)飛躍。它營造了“自主學(xué)習(xí)”的環(huán)境,由傳統(tǒng)的“以教促學(xué)”的學(xué)習(xí)方式代之為學(xué)習(xí)者通過自身與信息環(huán)境的相互作用來得到知識、技能的新型學(xué)習(xí)方式。利用虛擬現(xiàn)實(shí)技術(shù)建立的各種虛擬實(shí)驗(yàn)室,擁有低廉的成本、零操作實(shí)驗(yàn)風(fēng)險(xiǎn)、無時(shí)空限制等傳統(tǒng)實(shí)驗(yàn)室難以比擬的優(yōu)勢。虛擬現(xiàn)實(shí)的沉浸性和交互性,使學(xué)生能夠在虛擬的學(xué)習(xí)環(huán)境中扮演一個(gè)角色,全身心地投入到學(xué)習(xí)環(huán)境中去,有利于學(xué)生的技能訓(xùn)練。虛擬校園是虛擬現(xiàn)實(shí)技術(shù)在教育培訓(xùn)中最早的具體應(yīng)用,提供相對完整的三維可視化虛擬校園以學(xué)員為中心,加入一系列人性化的功能,,通過交互式遠(yuǎn)程終端,提供開放性的、遠(yuǎn)距離的持續(xù)教學(xué)。目前,許多高校都在積極研究虛擬現(xiàn)實(shí)技術(shù)及其應(yīng)用,并相繼建起了虛擬現(xiàn)實(shí)與系統(tǒng)仿真研究室,將科研成果迅速轉(zhuǎn)化實(shí)用技術(shù)。
1 3D渲染引擎系統(tǒng)架構(gòu)設(shè)計(jì)
一個(gè)3D引擎最基本的功能應(yīng)該包括對3維場景的數(shù)據(jù)管理、功能合理的渲染器、與外部軟件的交互能力。完整功能的3D游戲引擎需要的基本部件有系統(tǒng)(System)、控制臺(Console)、支持(Support),渲染/引擎內(nèi)核(Renderer/Engine Core)、介質(zhì)層(Interface)、以及工具/數(shù)據(jù)(Tools/Data)等。系統(tǒng)的整體框架如圖1所示。
系統(tǒng)(system)是引擎與機(jī)器本身做通信交互的部件。一個(gè)優(yōu)秀的引擎在待平臺移植時(shí),它的系統(tǒng)則是唯一需要做主要更改(擴(kuò)加代碼)的地方。把一個(gè)系統(tǒng)分為若干個(gè)子系統(tǒng),其中包括:圖形(Graphics)、輸入(Input)、聲音(Sound)、記時(shí)器(Timer)、配置(Configuration)。主系統(tǒng)負(fù)責(zé)初始化、更新、以及關(guān)閉所有的子系統(tǒng)。
圖形子系統(tǒng)(Graphics Sub-System)可以基于OpenGL、Direct3D, Glide或是軟件渲染(software rendering)實(shí)現(xiàn)。在Sliverlight中,提供了原生的支持。輸入子系統(tǒng)(Input Sub-System)需要把各種不同輸入裝置的輸入觸發(fā)做統(tǒng)一的控制接收處理。聲音子系統(tǒng)(sound system)負(fù)責(zé)載入、播放聲音。支持3D聲音。3D游戲引擎中很多出色的表現(xiàn)都是基于“時(shí)間系統(tǒng)”(time),Silverlight 5的DrawingSurface提供了對時(shí)間系統(tǒng)的管理。
Renderer/Engine Core (渲染/引擎內(nèi)核)包括以下幾個(gè)部份:可見裁減(Visibility)、碰撞檢測與反饋
。–ollision Detection and Response)、攝像器(Camera)、靜態(tài)幾何體(Static Geometry)、動(dòng)態(tài)幾何體(Dynamic Geometry)、粒子系統(tǒng)(Particle Systems)、布告板(Billboarding)、網(wǎng)格(Meshes)、天空體(Skybox)、光線(Lighting)、霧(Fogging)、節(jié)點(diǎn)陰影(Vertex Shading)等。
Interface (接口)層提供攝像器(camera)、模型屬性(model properties)、光線(lights)、粒子系統(tǒng) 物理(particle system physics)、聲效播放(playing sounds)、音樂播放(playing music)、輸入操作(handling input)、切換等級(changing levels)、碰撞檢測以及反饋(collision detection and response)、以及2D圖形界面的頂端顯示、標(biāo)題畫面等。
2 系統(tǒng)詳細(xì)設(shè)計(jì)
根據(jù)系統(tǒng)的設(shè)計(jì)架構(gòu),詳細(xì)設(shè)計(jì)的類圖如下:
2.1 渲染引擎核心
在Silverlight5中3d渲染需要開啟GPU加速,即設(shè)置EnableGPUAcceleration為true。添加DrawSurface控件同時(shí)定義Draw事件。生成Draw事件處理函數(shù)。定義一個(gè)存儲頂點(diǎn)數(shù)據(jù)的結(jié)構(gòu)體。通過引進(jìn)一個(gè)輕量級的XNAGraphicsFramework4.0提供對3D的支持,該特性可以開發(fā)更豐富的游戲和用戶體驗(yàn)。
2.2 渲染線程
Silverlight 5中,線程架構(gòu)有一個(gè)新的變化,加入了 composition thread,該線程分擔(dān)了UI線程的部分工作,負(fù)責(zé)在GPU 加速功能被開啟時(shí),承擔(dān)GPU 相關(guān)操作的工作任務(wù)。Silverlight中的異步數(shù)據(jù)下載對此做了很好的支持,為此設(shè)計(jì)資源管理器,在資源抵達(dá)時(shí),通過繼承INotifyPropertyChanged類,在數(shù)據(jù)加載時(shí)對注冊了PropertyChangedEventHandler委托事件的類進(jìn)行通知。
2.3 資源管理器
資源加載線程資源對象的創(chuàng)建分為兩步,先是資源文件到內(nèi)存數(shù)據(jù)塊的加載,再創(chuàng)建最后的資源對象。異步請求數(shù)據(jù)執(zhí)行避免了主線程因?yàn)槲募蘒O而阻塞。主線程可以在任何時(shí)候提出加載請求,其主要參數(shù)就是待加載文件的Uri。加載模塊將請求放入一個(gè)待完成請求的隊(duì)列。加載線程不斷從請求隊(duì)列中取出命令消息,完成文件的打開及讀取,將加載后的內(nèi)存指針保存到命令消息結(jié)構(gòu)中,并把完成后的命令消息增加到一個(gè)已完成命令的隊(duì)列中去。
2.4 系統(tǒng)通訊
Silverlight中的Socket通信是典型的異步機(jī)制。.net 中每一個(gè)進(jìn)程都有一個(gè)完成端口對象,它內(nèi)部有個(gè)設(shè)備列表,用戶把某個(gè)socket傳進(jìn)完成端口時(shí),它就把這個(gè)socket加入到設(shè)備列表中進(jìn)行監(jiān)視。
3 結(jié)語
通過對3D虛擬教學(xué)系統(tǒng)關(guān)鍵技術(shù)中3D渲染引擎的研究與設(shè)計(jì),為進(jìn)一步設(shè)計(jì)基于客戶端的3D渲染技術(shù)提供了參考,該實(shí)例證明了在目前網(wǎng)絡(luò)環(huán)境和終端計(jì)算條件下,實(shí)現(xiàn)遠(yuǎn)程3D虛擬教學(xué)系統(tǒng)的可行性。3D虛擬教學(xué)系統(tǒng)強(qiáng)大的交互性和浸沒感,對改善教學(xué)條件和提高教學(xué)效果具有劃時(shí)代的意義。通過對現(xiàn)代高新技術(shù)和渲染引擎的分析研究,引入云端渲染技術(shù),實(shí)現(xiàn)了虛擬教學(xué)系統(tǒng)終端3D呈現(xiàn)。
參考文獻(xiàn):
[1]曾芬芳.虛擬現(xiàn)實(shí)技術(shù)[M].上海:上海交通大學(xué)出版社,1997.
[2]李亞琭,郝應(yīng)光,唐禎安.遠(yuǎn)程教育與虛擬實(shí)驗(yàn)室[J].自然雜志,2003,23(3):157-160.
[3]劉曉君.基于Web的虛擬教學(xué)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2005.
[4]丁士鋒.Silverlight-RIA開發(fā)技術(shù)詳解[M].北京:人民郵電出版社,2008.
[5]熊云龍.基于Silverlight的RIA研究及應(yīng)用[D].重慶大學(xué),2001.
本文編號:14731
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/14731.html