虚拟校园的设计和实现
2015-12-02刘柱,刘瑾
刘 柱, 刘 瑾
(大连理工大学网络与信息化中心,辽宁大连 116024)
0 引 言
随着数字化应用的不断发展和深化,文字的介绍已经无法满足人们对新事物认知的需要,通过网络能够身临其境地去体验已经成为一种使用习惯.在这种大背景下,高校数字化建设中都有了三维虚拟校园应用[1].三维虚拟校园是将计算机三维技术、环境建模技术、贴图渲染技术、仿真技术和不断发展的互联网技术相结合,形成一种崭新的信息交流方式[2];与传统二维数字校园相比,它能更真实地展现客观世界;和网络技术相结合后,使得浏览者能够更加便捷地、可以不受时间和空间的约束来满足参观,对于介绍和宣传学校的历史、文化等有着重要的意义[3-4];通过动态交互产生的身临其境的感觉,可以用于改善教学科研手段,为广大师生提供一个功能强大的沟通、互动、分享的虚拟平台,提高教学科研的效率和水平[5-6];对提高校园管理水平等也具有重要的实际意义[7].
1 系统设计
1.1 开发平台选择
Unity是由Unity Technologies开发的工具,能够让开发者轻松创建诸多三维视频游戏、实时三维动画、建筑可视化等类型的互动内容多平台的综合型开发工具.DirectX和OpenGL拥有高度优化的图形渲染管道,使得画面效果优异,扩展空间高,并且提供了真实的高度完善的光影渲染以及柔和阴影与烘焙的系统[8-9].
1.2 图形底层与逻辑架构
3D底层使用微软DirectX9.0c接口(简称DX9),兼容所有支持DX9.0c的硬件与操作系统.可以获得更好的图像显示质量与硬件兼容性,使项目具备硬件平台伸缩性,以及更佳的画面效果.
逻辑层面使用.net开发基于微软运行环境.主体使用C#开发,为保持在普通浏览器上的兼容性与透明性,涉及浏览器部分的功能使用JavaScript脚本.Mono和Boo项目允许跨平台的.net的框架,使得Unity有优秀的跨平台能力,从根本上解决多浏览器兼容问题.详见图1.
图1 Unity3D脚本技术框架
1.3 软件结构方案
为了最大限度发挥软件设计功能,节省硬件资源,系统使用B/S+C/S结构方案.在充分使用B/S架构的基础上,通过分布式后台下载方式在客户端机器建立有效缓存,实现半C/S结构,有效减小服务器负载.
2 系统实现
2.1 对象建模
3D虚拟校园中建筑和场景模型的好坏,直接影响运行的效果和用户使用的逼真度.简陋的模型会破坏视觉效果,高精度大数据量的模型会影响系统运行速度.因此能否制作出简洁适当的模型,决定着作品画面质量的好坏[10-11].大连理工大学校园面积大,建筑物多,树木景观多,因而对系统画面效果要求极高.根据以上因素,在建筑建模时采用特殊技术并制定严格的标准,尽量减低模型的数据量;花大量精力对贴图进行处理,减少贴图的数量.同时利用法线贴图和相关特效实现逼真的效果.树木模型精选五种树,通过对树木形态改变完成对整个校园树木的模拟,精细程度树叶可见.人物雕塑模型一直是虚拟现实系统模型的难点,对该类模型的解决方式采取先捏塑简单泥模,将其扫描进电脑,之后进行处理建模,这样得到的模型兼顾了仿真度高、数据量小的要求.如图2.
图2 体育馆
2.2 贴图
采用Parallax Occlusion Maps技术,可以真实保持细节的凹凸,表现出细节的阴影关系.在不影响建模精度和质量要求的前提下尽量节省资源,选择合适的图片进行裁切,组合成建筑所需的贴图.如图3.
图3 贴图后体育馆
2.3 场景效果实现
全新的三维场景虚拟校园能真实呈现学校的场景,并且能把浏览者变成场景的一部分.浏览者可以通过操控计算机行走于校园中,体验学校的每一部分,大大增加了用户体验度.但是受限于网络,系统不能过大,所以众多学校的虚拟校园只能通过牺牲植被的效果、降低光照的效果等方法减小系统的大小,方便网上浏览,但这使得效果大打折扣.为达到功能和画质的兼得,我们在制作过程中进行了一些探索.
(1)运用多核支持技术
渲染引擎是面向多核处理进行设计的.有很多针对多核心系统的优化,应用了先进的无锁并行性技术,使引擎有更好的缩放性,并在不阻塞主渲染线程的情况下提供动态加载更新场景的能力,使基于互联网的高精度、大场景即时下载漫游和编辑功能成为现实.
(2)延迟着色
延迟着色是一种针对3D场景进行后期照明的技术.利用这种技术打破了以往渲染系统支持多重动态光源时,效率和各种性能急剧下降的限制,从而使得在一个3D场景能够支持上百上千动态光源的效果.它的实现方法主要是将3D场景的几何光照信息渲染到render targe上,把它们从三维世界空间转变成屏幕的颜色空间,作为光照计算时的输入;然后对每一个光源,使用这些信息输入逐一进行计算生成一帧,然后把这样的一帧合成到结果的帧缓存上,当遍历完所有的光源后,计算就完毕了.帧缓存上的图像就是最后的渲染结果.
Unity3d引擎着色框架是基于DX10架构的,64bit颜色抗锯齿G-Buffer,提供更精确的颜色计算,并支持大量的实时光源,能提供逼真的建筑内外光照效果.
(3)真实的自然天光
一个真实的天空效果对渲染气氛是十分重要的.渲染引擎基于地球任一点任意时间的大气光学厚度对于不同波长光波的Rayleign和Mie散射的数学建模,可以提供真实的天光和光照效果.如图4.
图4 天光效果图
(4)动态软阴影
获得动态树阴影效果.Unity3D引擎采用先进的多级PSSM ShadowMap投影方式和VSM的过滤算法,可以产生动态的精细的柔和阴影效果,并可以支持半透明的物体投影.
Shadow Mapping(阴影映射)是一种图像空间的技术,它是在以光源位置作为视点的情况下渲染整个场景的深度信息,然后再使用这些深度信息去决定场景的哪一部分是处于阴影之中.它有锯齿并且依赖缓冲技术.由于可以在保持帧率的情况下达到真实感光照和阴影效果,编辑器允许在场景中放置任意数目的静态光源,它会为每个面预计算光流量和静态阴影[12].
(5)体积光
体积光是指大气中漂浮的尘埃在光照情况引起的散射效果,比如像在暗屋子中从窗缝投进的光柱效果,它给人一种莫名的厚重感和时间感,也是构成真实画面效果的不可或缺的一部分.如图5.
(6)景深
景深是重要的一种镜头表达方式.系统使用屏幕空间的基于逐像素的多次高斯卷积滤波,可以模拟出人眼的这种效果,增加用户身临其境的感觉.同时主画面以外的部分被虚化后,面数大大降低,可减少系统对资源的占用,有助于实现高画质的流畅运行.如图6,近景场景清晰而远景场景模糊.
图5 体积光效果
图6 景深效果
输入脚本实现景深效果.如果距离小于0.5图像是清晰的,大于0.5图像是模糊的.
(7)次表面反射
不大幅增加模型数据量而实现模型的高度真实感,除前面提到的法线贴图技术,比较典型,也是比较受关注的是玻璃反光,甚至往往是观察的重点.运用基于双向次表面散射反射分布函数BSSRDF,对玻璃和其他不同的材质建模表现出和逼真的表面效果.如图7.
图7 不同角度的反射效果对比图
(8)移动控制
第一人称浏览时,可以控制的动作,可以提供更好的用户体验.通过“wasd”或者上下左右键来控制移动.首先新建一个JavaScript文件,这里命名为InputDetect吧,输入下面的代码:
这时,运行这个系统,就可以通过“WASD”来控制移动了.
3 系统的发布
最终系统是网上应用的.考虑到用户硬件的配置差异,提供从高到低四个版本,最低可支持集成显卡,并在主页面上制作对应按钮,清晰标注每个版本对应的配置需求,方便选择浏览.并在演示页面设置操作图示.如图8.
图8 系统首页
4 小 结
大连理工大学三维虚拟校园系统每个版本文件25M左右,运行时占内存400M;页面打开迅速、运行流畅;界面友好,操作便捷;画面精美自然,给人以身临其境的感觉.在虚拟校园的基础上可以虚拟地下管线,从根本上改变地下管线设施的无序管理的混乱局面;校园建设虚拟规划,减少设计出错概率,降低设计成本.
[1] 陈育滨,曾玉珠.基于Unity3D平台的Web3D展示[J].电脑编程与技巧,2012,1:67-72.
[2] 曹文钢,王锐,张红旗,等.应用虚拟现实技术的人机交互仿真系统开发[J].工程图学学报,2010,1:145-149.
[3] 陈沙伟,方俊,郭晓俐.基于Web3D的校园虚拟漫游系统的实现[J].电脑知识与技术,2011(12):2-4.
[4] 李建军,李钊,原庆凯,等.虚拟校园系统关键技术研究[J].无线电工程,2010,3:58-60.
[5] 王颖,廖可兵,郭阳,等.集成人机交互仿真系统研制与应用[J].系统仿真学报,2007(11):2492-2495.
[6] 丁骏,钟彬华,崔振东.三维虚拟校园的设计与实现[J].科技信息,2011(13):45-46.
[7] 周希望,刘正东.虚拟校园的建模优化及Web3D交互技术[J].软件导刊,2010,9(1):31-33.
[8] 干建松.基于Unity3d的室内漫游的关键技术研究[J].盐城工学院学报,2011,24(4):56-59.
[9] 卞峰,江漫清,桑永英,等.虚拟现实及其应用进展[J].计算机仿真,2007(6):1-4.
[10] 徐诚.虚拟校园漫游系统的研究[D].武汉:华中师范大学,2006.
[11] 王卫辰,江晓红.虚拟校园三维仿真系统开发及优化[J].徐州师范大学学报:自然科学版,2004,3:29-32.
[12] 热门3D游戏视觉效果名词简[EB/OL].http://wenku.baidu.com/view/27eaa10b763231126edb1122.html.