基于Silverlight的3D虚拟教学系统关键技术研究

2014-10-07 15:40:46 大云网  点击量: 评论 (0)
摘 要:为了提高教学中教学的互动性、浸没感,采用云端计算技术,建立基于RIA虚拟教学系统。完成系统的关键设计是渲染引擎的构建与实现,采用目前客户端GPU加速技术和浏览器插件技术,解决了3D虚拟教学系统无客
摘 要:为了提高教学中教学的互动性、浸没感,采用云端计算技术,建立基于RIA虚拟教学系统。完成系统的关键设计是渲染引擎的构建与实现,采用目前客户端GPU加速技术和浏览器插件技术,解决了3D虚拟教学系统无客户端富互联网应用渲染问题。通过对现代高新技术和渲染引擎的分析研究,引入云端渲染技术,实现了虚拟教学系统终端的3D呈现。通过在虚拟教学系统中的实例测试,证明了该引擎的正确性和有效性。该引擎的实现,为进一步完善虚拟教学系统提供了基础与保障,为开发基于互联网的富客户端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.

大云网官方微信售电那点事儿

责任编辑:叶雨田

免责声明:本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
我要收藏
个赞