基于Unity3D的图书馆虚拟阅读系统
来源:用户上传
作者:
摘 要:高校图书馆拥有非常丰富的实体图书资源,一般仅面向本校师生开放,由此出现资源利用率低、分配不均等问题。为解决上述问题,提出一种基于Unity3D的图书馆虚拟阅读系统,通过Unity3D软件进行环境模拟和搭建,再使用C#语言实现人机交互,将虚拟阅读和虚拟漫游相结合,实现在虚拟环境中行走与阅读。实验表明,该系统可让用户沉浸在虚拟环境中学习和阅读,能够满足大众阅读需求。
关键词:虚拟现实;Unity3D;虚拟图书馆;虚拟阅读;虚拟漫游
DOI:10. 11907/rjdk. 191614
中图分类号:TP319 文献标识码:A 文章编号:1672-7800(2020)003-0168-04
Library Virtual Reading System Based on Unity3D
ZHUANG Chu-xin, LIU Hong-yu
(School of Electronics and Information, Guangdong Polytechnic Normal University, Guangzhou 510665,China)
Abstract: University libraries are rich in book resources, but because many universities libraries are only open to their teaching staff and students, it often leads to the problem of unequal distribution of resources. Therefore, in order to solve this problem, we proposed a virtual reading system of library based on Unity3D. Through the simulation and construction of environment with Unity3D software, interaction was realized with C# language, so as to complete the combination of virtual reading and virtual tour and meet the needs of walking and reading in the virtual environment. Experiments show that the system can meet the requirements of the public reading books, and users can immerse themselves in the virtual environment for learning and reading.
Key Words: virtual reality;Unity3D;virtual library;virtual reading;virtual?wandering
0 引言
虛拟现实技术(Virtual Reality Technology,简称VR技术)是仿真技术与计算机图形学、人机接口技术、多媒体技术、传感技术、网络技术等多种技术的集合[1-4],是计算机领域中一门富有挑战性的交叉技术前沿学科。虚拟现实技术具有沉浸性、构想性和交互性三大特性,简称为“3I”特性,如图1所示。虚拟现实技术主要包括模拟环境、感知、自然技能和传感设备等。模拟环境是指通过计算机搭建逼真的三维立体模型,为虚拟环境提供交互场景。目前,三维建模主要通过3DMax和Unity3D等建模软件搭建,此类软件能较真实地仿造构建出逼真的立体环境,给人以身临其境般的感觉。感知是指利用感官对物体获得有意义的印象,也指人的听觉、触觉、视觉等,而虚拟现实技术可以让人们在虚拟环境中接收到这些感觉,因此也称为多感知。自然技能与传感设备是一个组合,即通过传感设备和计算机实现人的头部转动和手部活动,从而与虚拟环境进行即时交互,增加代入感,给人一种身临其境的感受。
因此,虚拟现实技术既指通过计算机模拟构建三维立体虚拟环境,借助视觉反馈设备和其它感官反馈设备与其虚拟环境即时交互,由此给予体验者一种身临其境的感知享受,此外还能完成现实生活中难以完成的行为和信息展示[5-7]。
VR技术的概念自1963年被提出以来,经过数十年的理论发展与应用,已经逐渐应用于教育、房地产、娱乐、影视等各领域。在教育方面,越来越多的学校已将VR技术用于教学以达到扩区域、超时空、拓展创新教育的目的。2013年,美国Google公司开发了一款“远征”教育系统,该系统主要通过VR技术实现让学生足不出户,就能看到一个缤纷多彩的新世界。美国是VR技术的发源地,因此美国VR技术水平基本可以代表目前国际VR水平。国内虚拟现实技术发展起步相对较晚,且其应用场景主要集中在中小型科研团队和企业。大企业中VR产品比较成熟的是HTC厂商,其与Valve游戏公司合作开发的虚拟现实头盔VIVE,以及目前迭代比较完善专供游览参观的莫高窟“数字敦煌”。在教育领域,图书馆虚拟阅读相关研究较少:截至2019年5月,在知网检索“VR”+“图书馆”关键词,仅有35篇相关文章;检索“Unity3D”+“图书馆”关键词,仅有4篇相关文章;检索“VR”+“虚拟阅读”关键词,仅有36篇文章;检索“虚拟现实”+“图书阅读”关键词,只有7篇文章,而且此类文章大多是关于VR+图书的概念或者图书馆虚拟漫游实现等,并没有实现图书馆虚拟阅读的实例化。通过知网和Scholar检索可以看出,国内在VR技术应用于图书馆方面的研究相比国外有所欠缺。但是,随着物联网、传感器等技术的发展以及5G技术的布局,VR技术也将日渐普及。虽然VR技术还逐渐趋向成熟,但无论是国内还是国外,仍有较大探索空间,技术的发展和迭代都需要大量科技人员的努力。本文将VR技术应用于图书馆虚拟阅读,为用户提供更好的学习环境,让读者静心于虚拟学习氛围中,提高学习效果和学习效率。 近几年,有很多研究者使用Unity3D开发室内漫游系统。肖建良[8]开发了基于Unity3D的室内漫游系统,用户可以自由地漫游、浏览并与环境交互;李婧晖[9]开发了基于HTC Vive和Unity3D的虚拟现实校园漫游系统,用户使用头戴设备和手柄可在某个空间内实现精准度极高的移动定位,从而实现在虚拟校园环境中的自由移动并与环境互动;王爱军[10]开发了基于Unity3D的博物馆虚拟漫游系统,该系统实现了中国博物馆场景漫游系统展示及应用;汪俊峰[11]开发了基于Unity3D的图书馆三维查询系统,实现图书馆三维展示和图书馆分布查询等功能。通过查阅文献,绝大部分应用于图书馆的虚拟现实技术,仍然只是实现了虚拟漫游或者720°全景观赏,没有进一步扩充虚拟阅读场景。因此,为了有效提高资源利用率、丰富全民阅读书籍资源,使用Uinty3D技術[12-15]搭建图书馆虚拟阅读系统,使得读者既可以在校园内漫游,还能进入图书馆漫游并阅读书籍,让读者真正沉浸于虚拟学习环境中。在VR技术支持下,资源得以有效合理应用,也有利于营造一种良好的全民阅读环境,促进大范围、跨区域、全覆盖的公民素质大提升。
1 系统架构
软件平台主要通过3DMax、Unity3D和C#实现,其中3DMax用于一些较复杂模型建模,将建好的模型按FBX格式文件导出,将该格式文件和相应渲染图等导入Unity3D中,并在Unity3D中进行摆放和进一步渲染。软件平台设计如图2所示。Unity3D主要用来接收3DMax导入的模型,若出现渲染缺失的情况再重新用Unity3D工具渲染,并且对导入的模型作一个总体渲染加调光等操作,使得模型更加逼真,让用户视觉体验更好。一些简单模型和场景布局也是在Unity3D软件中完成,最后整合所有模型,完成整个图书馆及书籍建模。系统现有书籍主要以图片形式插入,因此可以拓展书籍数量及类型等。模型建好后使用C#脚本语言做一个人机交互的脚本,包括行走(主要是摄像机的移动)、场景切换、防碰撞(遇到有阻挡物体时不能通过)以及书籍翻阅(可以通过鼠标或者左右键实现该功能)等脚本,以实现用户在图书馆内进行虚拟漫游和虚拟阅读,拓展图书馆虚拟场景,提高学习效果。此外,为了让场景更加丰富,也为了更好地保护珍贵书籍和名画等,在系统中既实现了图书馆的虚拟漫游和虚拟阅读,又实现了展览馆的虚拟漫游及虚拟阅读,拓展了系统应用范围,使得该系统更加适合大众学习使用。软件实现流程如图3所示。
2 系统设计
2.1 3DMax建模
搭建图书馆建筑物时有很多复杂物体,例如书架、桌椅、电脑等实物,因此首要选择3DMax工具进行建模。3DMax具有性价比高、上手容易以及资源丰富等优点,非常适合复杂物体建模。在搭建过程中,图书馆内的桌椅、书架等都使用3DMax建模,并对建模好的实物进行渲染等操作,使得模型更逼真,让读者可以沉浸于虚拟环境中。将所有建好的模型在3DMax软件中以FBX格式导出,再导入Unity3D中摆放和渲染。Unity3D以厘米为单位,因此在使用3DMax建模时也选择以厘米为单位,这样导入Unity3D后才不会出问题。3DMax主要用于书架、图书馆等物体建模,将模型形状和外观充分表现出来,给人一种非常真实的感觉。其中,3DMax图书馆楼梯模型如图4所示。
2.2 Unity3D渲染与建模
复杂物体通过3DMax建模完成后,将所有实物导入Unity3D中。Unity3D主要完成小物体、环境(如树木花草等)以及书籍建模,最后整个环境的渲染也在Unity3D中进行。整个图书馆建模完毕后,再在Unity3D软件中对相应的物体编写C#脚本,例如点击建模好的书籍,插入C#脚本后编写翻阅书籍等操作,使得系统可以进行虚拟漫游和虚拟阅读(包括翻书等功能)。其中,书架和书籍模型如图5所示。
2.3 C#脚本编写
整个系统中,包括几个重要脚本编写,有摄像机前后左右移动代替虚拟漫游、防碰撞代码、翻书代码等。通过编写代码,可以实现在整个系统中进行虚拟漫游和虚拟阅读,让参与者沉浸于虚拟环境中。虚拟漫游主要是利用键盘或者鼠标控制摄像机移动,实现第一人称视角的观赏和阅览。虚拟阅读主要通过鼠标或者左右键实现书籍虚拟翻阅,并阅览书本里的内容,通过阅读提升用户知识面,提高学习效率。防碰撞是指在移动过程中,如遇到阻碍物则无法通过的一种设置。此外,通过场景切换实现进出图书馆和展览馆。摄像机移动部分代码和翻书部分代码分别如下:
//摄像机移动部分代码
Void Update(){
rotationX += Input.GetAxis("Mouse X") + cameraSensitivity * Time.deltaTime;
rotationY += Input.GetAxis("Mouse Y") + cameraSensitivity * Time.deltaTime;
…
if (Input.GetKey(KeyCode.LeftShift) || InputGetKey(KeyCode.RightShift)){
transform.position += transform.forward * (normalMoveSpeed * fastMoveFactor) * Input.GetAxis("Vertical") * Time.deltaTime; transform.position += transform.right * (normalMoveSpeed * fastMoveFactor) * Input.GetAxis("Horizontal") * Time.deltaTime;
}
else if (Input.GetKey (KeyCode.LeftControl) || Input.GetKey (KeyCode.RightControl))
{
transform.position += transform.forward * (normalMoveSpeed * slowMoveFactor) * Input.GetAxis("Vertical") * Time.deltaTime;
transform.position += transform.right * (normalMoveSpeed * slowMoveFactor) * Input.GetAxis("Horizontal") * Time.deltaTime;
}
else {
transform.position += transform.forward * normalMoveSpeed * Input.GetAxis(“Vertical”) * Time.deltaTime;
transform.position += transform.right * normalMoveSpeed * Input.GetAxis("Horizontal") * Time.deltaTime;
}
…
}
//翻書部分代码
public void FlipRightPage(){
float Fr = (ContriledBook.EndBottomRight.x + ContriledBook.EndBottomLeft.x)/2;
float Fl = ((ContriledBook.EndBottomRight.x + ContriledBook.EndBottomLeft.x)/2)*0.9f;
…
Timing.RunCoroutine(FlipRTL(Fr, Fl, …));
}
Public void FlipLeftPage(){
float Fr = (ControledBook.EndBottomRight.x + ControledBook.EndBottomLeft.x) / 2;
float Fl = ((ControledBook.EndBottomRight.x - ControledBook.EndBottomLeft.x) / 2)*0.9f;
…
Timing.RunCoroutine(FlipLTR(Fr, Fl, …));
}
3 实验结果
通过整个系统建模和脚本代码编写,基本完成了图书馆的虚拟漫游和虚拟阅读。用户可以通过点击键盘的前后左右或者W、S、A、D 4个键位完成虚拟漫游,通过点击鼠标转换选择观赏方向;使用者还可以通过点击鼠标完成书籍选择和翻书阅读功能,沉浸在阅读的过程中,享受阅读带来的愉悦;此外,系统还能调整灯光的亮暗程度。通过系统开发,可以对高校图书馆的图书资源进行有效整合利用,开放虚拟化的高校图书馆,激发读者学习和阅读兴趣,从而提升公民整体素养。系统测试结果如图6和图7所示。
图6展示了系统完成翻书功能,通过点击相应书籍,再通过鼠标移动完成书籍翻阅,从而实现虚拟阅读。如果需要增加书籍张数,可以通过添加相应图片等方式,将其添加到书本相应位置,既满足人们对珍贵书籍的阅读和观赏需求,还能保护珍贵书籍不受破坏。图7是图书馆外部部分模型,当摄像机移动到图书馆门前设定位置时,则会切换到图书馆内部场景,然后在图书馆内进行漫游并点击书籍阅读。 实验证明,使用Unity3D技术完成图书馆虚拟漫游和虚拟阅读是可行的,且非常有价值和意义。将虚拟阅读和虚拟漫游进行结合,完成在图书馆内进行自由虚拟漫游及虚拟阅读,基本满足了大众书籍阅读需求。而且,为了拓展场景的广泛性,系统还构建了展览馆建筑,完成展览馆的虚拟漫游以及珍贵名画的虚拟观赏。
4 结语
系统主要以3DMax作为建模工具,完成复杂物体建模。利用Unity3D进行整个图书馆环境布置及渲染,最后通过C#脚本语言与系统进行交互,完成图书馆虚拟阅读系统开发。本实验主要实现图书的虚拟阅读及虚拟漫游,使得图书馆的实体图书资源可以得到合理利用,方便在校学生学习。并且,该系统还可以满足普通大众的阅读需求。通过虚拟现实技术实现虚拟图书阅读还能保护稀有和珍贵书籍不受破坏。后续研究中将加入硬件模块,通过虚拟眼镜和手柄,完成进一步虚拟阅读和书籍翻阅等操作,拓展系统应用范围。
参考文献:
[1]赵沁平. 虚拟现实综述[J]. 中国科学:F辑:信息科学,2009,39(1):2-3.
[2]张毅. 虚拟现实技术的发展现状与展望[J]. 電脑迷,2017(11):32.
[3]陆颖隽. 虚拟现实技术在数字图书馆的应用研究[D]. 武汉:武汉大学,2013.
[5]周晓燕,崔然. 国外VR技术与虚拟图书馆研究综述[J]. 情报科学,2018,36(3):164-166.
[5]李敏,韩丰. 虚拟现实技术综述[J]. 软件导刊,2010,9(6):141-144.
[6]曹磊. 国外虚拟现实的现状与趋势[J]. 竞争情报,2017,13(2):51-52.
[7]黄奕宇. 虚拟现实(VR)教育应用研究综述[J]. 中国教育信息化,2018(1):11-16.
[8]肖建良,张程,李阳. 基于Unity3D的室内漫游系统[J]. 电子设计工程,2016,24(19):54-56.
[9]李婧晖,甘胜江. 基于HTC Vive和Unity3D的虚拟现实校园漫游系统开发研究[J]. 科技资讯,2018,16(10):14-15.
[10]王爱军,李中永,颜世波. 基于Unity 3D的博物馆虚拟漫游系统设计[J]. 湖南工程学院学报:自然科学版,2019(1):49-53,59.
[11]汪俊峰,王星东,张海龙. 基于Unity3D的图书馆三维查询研究[J]. 河南科技,2018(11):14-15.
[12]陶健林. 基于Unity3D的虚拟家装漫游系统[J]. 科教文汇:下旬刊,2018(12):172-181.
[13]魏育坤. 基于Unity3D的虚拟现实交互系统的设计与实现[J]. 电子技术与软件工程,2018(14):45-46.
[14]马越超. 基于Unity3D的三维数字校园漫游平台[J]. 包头职业技术学院学报,2016,17(4):3-4,7.
[15]吴保文,杨柏军. 基于3ds Max与Unity 3D的虚拟展厅图片更新的实现[J]. 文山学院学报,2016,29(6):56-58.
(责任编辑:孙 娟)
收稿日期:2019-05-17
基金项目:“攀登计划”广东大学生科技创新培育专项资金资助项目(pdjh2018b0296)
作者简介:庄楚鑫(1993-),男,广东技术师范大学电子与信息学院硕士研究生,研究方向为区块链、信息安全、虚拟现实;刘宏宇(1995-),男,广东技术师范大学电子与信息学院硕士研究生,研究方向为深度学习、信息安全、虚拟现实。
转载注明来源:https://www.xzbu.com/8/view-15217903.htm