基于Silverlight的3D虛擬教學系統關鍵技術研究
關鍵詞:虛擬現實 虛擬教學系統 Silverlight 富客戶端
虛擬現實應用于教育是教育技術發展的一個飛躍。它營造了“自主學習”的環境,由傳統的“以教促學”的學習方式代之為學習者通過自身與信息環境的相互作用來得到知識、技能的新型學習方式。利用虛擬現實技術建立的各種虛擬實驗室,擁有低廉的成本、零操作實驗風險、無時空限制等傳統實驗室難以比擬的優勢。虛擬現實的沉浸性和交互性,使學生能夠在虛擬的學習環境中扮演一個角色,全身心地投入到學習環境中去,有利于學生的技能訓練。虛擬校園是虛擬現實技術在教育培訓中最早的具體應用,提供相對完整的三維可視化虛擬校園以學員為中心,加入一系列人性化的功能,通過交互式遠程終端,提供開放性的、遠距離的持續教學。目前,許多高校都在積極研究虛擬現實技術及其應用,并相繼建起了虛擬現實與系統仿真研究室,將科研成果迅速轉化實用技術。
1 3D渲染引擎系統架構設計
一個3D引擎最基本的功能應該包括對3維場景的數據管理、功能合理的渲染器、與外部軟件的交互能力。完整功能的3D游戲引擎需要的基本部件有系統(System)、控制臺(Console)、支持(Support),渲染/引擎內核(Renderer/Engine Core)、介質層(Interface)、以及工具/數據(Tools/Data)等。系統的整體框架如圖1所示。
系統(system)是引擎與機器本身做通信交互的部件。一個優秀的引擎在待平臺移植時,它的系統則是唯一需要做主要更改(擴加代碼)的地方。把一個系統分為若干個子系統,其中包括:圖形(Graphics)、輸入(Input)、聲音(Sound)、記時器(Timer)、配置(Configuration)。主系統負責初始化、更新、以及關閉所有的子系統。
圖形子系統(Graphics Sub-System)可以基于OpenGL、Direct3D, Glide或是軟件渲染(software rendering)實現。在Sliverlight中,提供了原生的支持。輸入子系統(Input Sub-System)需要把各種不同輸入裝置的輸入觸發做統一的控制接收處理。聲音子系統(sound system)負責載入、播放聲音。支持3D聲音。3D游戲引擎中很多出色的表現都是基于“時間系統”(time),Silverlight 5的DrawingSurface提供了對時間系統的管理。
Renderer/Engine Core (渲染/引擎內核)包括以下幾個部份:可見裁減(Visibility)、碰撞檢測與反饋
(Collision Detection and Response)、攝像器(Camera)、靜態幾何體(Static Geometry)、動態幾何體(Dynamic Geometry)、粒子系統(Particle Systems)、布告板(Billboarding)、網格(Meshes)、天空體(Skybox)、光線(Lighting)、霧(Fogging)、節點陰影(Vertex Shading)等。
Interface (接口)層提供攝像器(camera)、模型屬性(model properties)、光線(lights)、粒子系統 物理(particle system physics)、聲效播放(playing sounds)、音樂播放(playing music)、輸入操作(handling input)、切換等級(changing levels)、碰撞檢測以及反饋(collision detection and response)、以及2D圖形界面的頂端顯示、標題畫面等。
2 系統詳細設計
根據系統的設計架構,詳細設計的類圖如下:
2.1 渲染引擎核心
在Silverlight5中3d渲染需要開啟GPU加速,即設置EnableGPUAcceleration為true。添加DrawSurface控件同時定義Draw事件。生成Draw事件處理函數。定義一個存儲頂點數據的結構體。通過引進一個輕量級的XNAGraphicsFramework4.0提供對3D的支持,該特性可以開發更豐富的游戲和用戶體驗。
2.2 渲染線程
Silverlight 5中,線程架構有一個新的變化,加入了 composition thread,該線程分擔了UI線程的部分工作,負責在GPU 加速功能被開啟時,承擔GPU 相關操作的工作任務。Silverlight中的異步數據下載對此做了很好的支持,為此設計資源管理器,在資源抵達時,通過繼承INotifyPropertyChanged類,在數據加載時對注冊了PropertyChangedEventHandler委托事件的類進行通知。
2.3 資源管理器
資源加載線程資源對象的創建分為兩步,先是資源文件到內存數據塊的加載,再創建最后的資源對象。異步請求數據執行避免了主線程因為文件IO而阻塞。主線程可以在任何時候提出加載請求,其主要參數就是待加載文件的Uri。加載模塊將請求放入一個待完成請求的隊列。加載線程不斷從請求隊列中取出命令消息,完成文件的打開及讀取,將加載后的內存指針保存到命令消息結構中,并把完成后的命令消息增加到一個已完成命令的隊列中去。
2.4 系統通訊
Silverlight中的Socket通信是典型的異步機制。.net 中每一個進程都有一個完成端口對象,它內部有個設備列表,用戶把某個socket傳進完成端口時,它就把這個socket加入到設備列表中進行監視。
3 結語
通過對3D虛擬教學系統關鍵技術中3D渲染引擎的研究與設計,為進一步設計基于客戶端的3D渲染技術提供了參考,該實例證明了在目前網絡環境和終端計算條件下,實現遠程3D虛擬教學系統的可行性。3D虛擬教學系統強大的交互性和浸沒感,對改善教學條件和提高教學效果具有劃時代的意義。通過對現代高新技術和渲染引擎的分析研究,引入云端渲染技術,實現了虛擬教學系統終端3D呈現。
參考文獻:
[1]曾芬芳.虛擬現實技術[M].上海:上海交通大學出版社,1997.
[2]李亞琭,郝應光,唐禎安.遠程教育與虛擬實驗室[J].自然雜志,2003,23(3):157-160.
[3]劉曉君.基于Web的虛擬教學系統設計與實現[D].成都:電子科技大學,2005.
[4]丁士鋒.Silverlight-RIA開發技術詳解[M].北京:人民郵電出版社,2008.
[5]熊云龍.基于Silverlight的RIA研究及應用[D].重慶大學,2001.
責任編輯:葉雨田
-
現貨模式下谷電用戶價值再評估
2020-10-10電力現貨市場,電力交易,電力用戶 -
PPT | 高校綜合能源服務有哪些解決方案?
2020-10-09綜合能源服務,清潔供熱,多能互補 -
深度文章 | “十三五”以來電力消費增長原因分析及中長期展望
2020-09-27電力需求,用電量,全社會用電量
-
PPT | 高校綜合能源服務有哪些解決方案?
2020-10-09綜合能源服務,清潔供熱,多能互補 -
深度文章 | “十三五”以來電力消費增長原因分析及中長期展望
2020-09-27電力需求,用電量,全社會用電量 -
我國電力改革涉及的電價問題
-
貴州職稱論文發表選擇泛亞,論文發表有保障
2019-02-20貴州職稱論文發表 -
《電力設備管理》雜志首屆全國電力工業 特約專家征文
2019-01-05電力設備管理雜志 -
國內首座蜂窩型集束煤倉管理創新與實踐
-
人力資源和社會保障部:電線電纜制造工國家職業技能標準
-
人力資源和社會保障部:變壓器互感器制造工國家職業技能標準
-
《低壓微電網并網一體化裝置技術規范》T/CEC 150
2019-01-02低壓微電網技術規范
-
現貨模式下谷電用戶價值再評估
2020-10-10電力現貨市場,電力交易,電力用戶 -
建議收藏 | 中國電價全景圖
2020-09-16電價,全景圖,電力 -
一張圖讀懂我國銷售電價附加
2020-03-05銷售電價附加
-
電氣工程學科排行榜發布!華北電力大學排名第二
-
國家電網61家單位招聘畢業生
2019-03-12國家電網招聘畢業生 -
《電力設備管理》雜志讀者俱樂部會員招募
2018-10-16電力設備管理雜志