杨小勤
(南京市诚信小学,江苏 南京 211100)
基于Quest3D平台虚拟现实技术的实践与思考
杨小勤
(南京市诚信小学,江苏 南京 211100)
在虚拟现实中,如何将学生的创意变为现实,实现虚拟世界与实体世界的有机结合,前提需要技术的支撑,文章通过对虚拟现实平台软件的学习,主要探讨了Quest3d技术在虚拟现实中的应用,从平时使用Quest3d软件的优缺点出发,提出了基于Quest3d平台虚拟现实教学系统的设计框架,对Quest3d核心技术难点进行实践探索并对Quest3d所搜集到的资源进行了一些总结和思考,最后结合学校3D技术在社团中应用的一些做法进行展望,探究基于Quest3d虚拟现实技术的发展及其在教育信息化整合中的应用前景。
虚拟现实;Quest3d;3D技术
虚拟现实技术是创建和体验虚拟世界的计算机仿真系统技术,伴随新技术的迅猛发展,虚拟现实技术作为新型技术引起人们的高度关注,虚拟现实技术创建出的虚拟环境,使用户产生视、听、触、嗅等真实的感受,其强大的功能已经被广泛应用于各个领域,对中小学教育信息化的发展产生了一定的影响,其在教育应用中亦起到了很大的作用,校园是这项未来技术的着陆点,在教育领域中,以虚拟现实技术为支撑的3D打印技术正逐渐步入人们的视野。特别是中小学基础教育领域。3D打印技术在学校社团活动中崭露头角,但3D打印在虚拟现实中的应用还是一个崭新的领域,虚拟现实应用过程中有许多技术问题值得我们深究。
本文就虚拟现实交互实现平台Quest3d进行了研究和探讨,提出了基于Quest3d虚拟现实教学系统的设计框架,对在学习中遇到的Quest3d技术难点进行了探讨,并对平时实践研究中收集到的资源进行了分析和总结,提出了一些自己的想法,以期为增强学习者的真实体验、主动学习及创客教育在教学中的有效开展和实施起到一定的推动作用。
1.虚拟现实技术
虚拟现实(Virtual Reality,简称 VR),也称为灵境技术,是一种可以创建和体验虚拟世界的计算机系统[1]。它的主要特征有沉浸性(Immersion)、交互性(Interaction)和想象性(Imagination)[2]。
在虚拟现实中,使用者不仅能够感受到在实体世界中所经历的“身临其境”的逼真性,而且能够突破地点、空间、时间以及其他客观限制,感受到真实世界中无法经历的交互体验[3]。虚拟现实技术的应用非常广泛,它最开始用于军事和航空航天领域,近年来,虚拟现实技术大步走进教育培训、文化娱乐、交通模拟、工业设计、建筑设计、空间展示设计、城市规划以及新媒体设计等领域,并逐渐改变着我们的生活[4]。
2.虚拟现实互动开发平台
在交互媒体中,国内外有多种实现虚拟现实开发系统的平台,国外的主要有:瑞典Cycore公司研发的Cult3D,主要支持线上浏览和操作交互设置的三维模型[5];美国Multi Gen-Paradigm公司研发的Multigen VEGA,在实时视觉模拟和数据分析方面效果显著[6];法国研发的Virtools是虚拟现实平台中应用较多的一款引擎,Virtools制作的沉浸感的虚拟环境非常逼真,广泛应用于实时3D环境虚拟实境编辑、计算机游戏开发、教育训练等各个领域[7];Unity3D是由Unity Technologies开发的一款支持三维视频游戏、实时三维动画等多种类型互动的多平台虚拟现实开发工具[8]。
另外国内比较有代表性的是深圳希技数码科技自主开发的HD(House Designer)平台,主要用于室内三维空间展示,还有北京中视典数字科技公司开发的VR-Platform三维互动仿真平台[9]。
3.Quest3d平台介绍
本文主要介绍荷兰Act-3D B.V.公司开发的Quest3d虚拟现实开发平台。笔者对Unity3d和Quest3d两款虚拟现实制作平台进行了比较分析:Unity3d应用领域和功能更加强大,但是需要开发者具有深厚的编译程序和编写底层代码的能力;而Quest3d使用者可以用系统中自带的多种元件模块为基础,通过Channel元件组块“搭积木”的方式,直接鼠标拖过来就可以了,如图1所示,不需要像Unity3d一样要编写上千行的复杂代码,高效完成了虚拟现实系统的开发,降低了门槛,更易上手和学习使用。
图1 Quest3d元件模块搭建
1.Quest3d软件的优势
(1)易用性。在Quest3d里,所有的编辑器都是视觉化、图形化的,真正所见即所得。它封装了很多可视化的模块,编程界面可视化程度高,用户不需要花费时间去编译程序和复杂的底层代码及运算图形,大部分程序操作可以采用“搭积木”的方法实现。
(2)高效便捷。正由于Quest3d软件通过函数的封装、采用元件模块去实现函数功能的可视化,所以使用者只需要将所需的功能模块通过鼠标拖拽的方式就可以搭建虚拟现实系统,提高了工作效率,高效地实现虚拟系统的开发。
(3)Quest3d价格相对低廉,适用性广。
(4)Quest3d中内建有许多的物体,如:具有逼真的人物、植物、光照、阴影、山林、火及烟的特效,还有真实的水波纹效果,可以轻易地加入Quest3d场景中。
(5)Quest3d比较适合做小的场景,效果和美工方面较好。
2.Quest3d软件的不足
(1)和其它相关软件配合不太流畅,和其它三维软件兼容性不是太好。
(2)Quest3d支持平台没有Unity3d软件广,插件、格式限制较严格,且不适合做大的场景。
(3)Quest3d可利用的资源较少,在网上可查找到的Quest3d方面的书籍、视频教程、论坛相较于其它三维软件少。
(4)Quest3d对模型的数据量有很多的限制,碰撞捕捉也不是很精确。
基于Quest3d虚拟现实教学系统的设计主要包括前期准备阶段、3D建模阶段、交互设置阶段、发布阶段。如图2所示。
图2 基于Quest3d虚拟现实教学系统实现流程图
前期准备阶段:先要对虚拟现实教学系统进行需求分析,即最终要实现的目的和效果,教学设计包括学习内容选择、学习内容分析、教学目标分析、学习对象分析,根据教学设计内容进行素材收集,确定各环节具体显示效果。
3D建模阶段:先要进行三维模型的建模,如比较常用的3dsMax、Maya,在Photoshop中修正的纹理贴图等赋予3D模型,设置正确UV,在3dsMax中布置灯光、烘焙贴图后进行场景的集成。
交互设置阶段:场景集成后,通过PandaDirectXMaxExporter_x86_6.2012.72.0.插件将三维模型转换成Quest3D所支持的.X格式,顺利导入Quest3D编辑器中,然后通过元件模块即Channel开发实现场景的漫游、人机交互、特效编辑,完成系统的各项功能。
发布阶段:平台搭建完成后,经过不断的测试和优化,生成QuestViewer能够播放的*.Q3D文件或发布成可独立执行的*.exe文件。
1.外部三维模型的导入
因为Quest3d平台本身对建模的限制,故在Quest3d平台中的模型搭建基本上都是从外部建模软件导入,而要将外部的三维模型(如3dmax、maya中所做的模型)顺利导入到Quest3d中,在实践操作中,首先要解决一个技术问题,即插件的问题,从网上下载的插件PandaDirectXMaxExporter_x86_6.2012.72.0,在 3dsMax的插件当中加载一下,加载完成之后在3dsMax导出对话框中就会有Quest3d所支持的.X格式文件选项,解决了插件问题,就能将自己在三维软件中所做的模型保存成Quest3d所支持的格式,顺利导入到Quest3d中。不过在实践的过程中,所下载的插件PandaDirectXMaxExporter_x86_6.2012.72.0.只是针对3dMax平台的插件,而且它仅支持3dMax2012及之前的版本,而对于2012之后的3dMax版本则不支持,故在实践操作应用中,对不同的平台和建模软件加载的插件版本要求不一。
2.“.x”和“.cgr”格式导入贴图区别
在使用过程中,可以将3dmax中所做出的三维模型分别保存成.x和.cgr格式导入到Quest3d中。
首先,对于.x格式,如何将3dMax中经过复杂贴图和3d烘焙后的三维模型导入到Quest3d中是实践中的一个技术难点,在虚拟现实平台制作的过程中,笔者曾经尝试两种方法导入物体,一种是在3dMax中导入一个最原始的未加任何贴图和渲染的模型,则能顺利导入,另一种导入经过渲染的三维模型,则能将模型导入,但之前的渲染和贴图则消失,解决办法就是要将3dMax中所做的三维模型存放到同一个文件夹下,再导入到Quest3d中进行勾选。所以.x格式导入到Quest3d中要一直指定贴图的路径,这时候Quest3d会自动扫描文件夹,寻找场景中所用的贴图。
其次,用同样的两种方法将保存成.cgr格式的三维模型导入到Quest3d中,则3dMax中所做的三维模型和贴图即使没有存放到同一个文件夹下,也能导入到Quest3d中,这是和.x格式导入Quest3d不一样的地方。
3.贴图烘焙问题
因为笔者在3dsMax中学过渲染烘焙,所以在Quest3d中也想实践下如何烘焙,于是在学习制作过程中对二者的烘焙进行了一些尝试和比较,一种是直接在Quest3d中运用其自身程序对物体进行贴图烘焙。另外一种是在3dsMax中通过“Render to tecture”命令进行贴图烘焙,完成后导入Quest3d中,实现贴图烘焙。结果通过Quest3d直接进行贴图烘焙效果不佳,其自身灯光系统不完善导致光影关系较弱,得不到最佳效果,而通过在3dsMax中烘焙后再导入Quest3d中则完美地解决了这一问题。
所以实践操作中,针对烘焙这个难题,笔者认为,一方面,Quest3d贴图烘焙一定要在3dsMax中最大程度完成,减少Quest3d中后期的修改;另外一方面,在3D中烘焙,由于计算量大,可能会因为软件性能的瓶颈而导致出错和死机,因此,应该尽量减少烘焙时候的面数或者进行分段烘焙。另外,受限于Quest3d软件自身,单纯依靠贴图烘焙技术并不能完全模拟所有特效,需在Quest3d中加载其他模块进行特效的模拟。
4.光照阴影
在Quest3d中光照和阴影也是实践操作中一大难点,模型上有了阴影才有更强的立体感,然而在Quest3d中制作实时的阴影是相当耗费资源的,而模型一旦很大,阴影就会计算错误,这是一个困难点,比如在利用光照和阴影来做房子的光照映射时,如图3所示,当做到将“Width”和“Height”都设置为 1024时,结果并不能显示物体的阴影,所以这个设置的数据是不对的,当设置这个“Width”为 1024“Height”为 512 时,则物体阴影显示出来,但物体显示的阴影却是不规则的,方向各不相同,如何将这些阴影都按照光线的方向规则的显示是一个难题,所以实时阴影的显示需要后续进一步的研究和深入探讨。
图3 房子模型光照和阴影
5.声音导入
声音是一个虚拟现实场景中不可或缺的元素,真实的声音可以烘托场景氛围,使用户获得身临其境般的听觉、视觉体验。Quest3d软件中有多个元件可以支持声音的播放、调节等操作,目前Quest3d软件中可以支持wav、MP3、MIDI格式的外部声音文件。
在Quest3d中进行声音的导入主要有两点:①在Quest3d4.2.2版本中小汽车声音不能导入,却在Quest3d4.3.2中导入了小汽车的声音,这个不是软件版本的问题,应该是小汽车的声音文件的问题,因为在网上下载的MP3格式的音乐经过格式工厂进行转换,转换成.wav格式的音乐,再导入到Quest3d中,无论是Quest3d4.2.2版本还是Quest3d4.3.2版本的都能够正常进行播放。②在虚拟现实场景中“关于音频时间长短的问题”,虚拟现实场景中插入声音文件之后如何设置音频时间,使用Sound File Channel将声音文件导入到系统中去,根据相机和声源的相对位置自动调整声音的音量、左右声道和频率效果,即可以实现修改音频时间长短的问题。
1.Quest3d平台资源库
(1)期刊文献资源
在中国知网CNKI数据库中,通过查阅众多文献,发现虚拟现实方向研究所用到的虚拟现实实现方法最多的是Multigen Vega和VRML,专门研究这两个方法的期刊论文和博士硕士论文也最多。而对于“Quest3d”方面的论文,大多是如何用Quest3d来做一个虚拟漫游场景,或者是“基于Quest3d的某方面的设计和实现”。
(2)书籍
通过阅读一些“虚拟现实”方面的书籍,从图书馆和网上进行搜集,主要阅读了《虚拟现实案例教程:基于Quest3D/VR-Platform/Virtools项目》(随书有光盘),以及《中国高校动画专业系列教材——Quest3D虚拟现实设计》和复印的讲义《Quest3D教程指南》。同时,在当当网、亚马逊中查找,发现目前我国现在出版的“Quest3d”方面的书籍还是较少的,主要是这三本:《虚拟现实案例教程:基于Quest3D/VR-Platform/Virtools项目》(随书有光盘)、《Quest3D从入门到精通》(随书有光盘),以及《中国高校动画专业系列教材——Quest3D虚拟现实设计》。关于“虚拟现实”方面的书籍虽然很多,但关于Quest3d在虚拟现实中应用的书籍较少,有的书籍中或多或少提及Quest3d,但关于Quest3d的介绍,很多书籍只是把它作为虚拟现实实现平台的一个引擎,或一笔带过,或只是重点介绍了一下软件的概况,并没有全面介绍,而有针对性的通过一些案例的示范来对Quest3d进行讲解的更是少之又少。
(3)网络视频、论坛资源
搜集到的网上的视频,免费的有“Quest3d官方八集视频教程”、“Quest3d手把手教学”“Quest3d基础教程”,这些免费教程在百度和一些论坛里面都可以下载,但都只是简单的小案例的实现,而且视频中的素材贴图都无法获取,只是一些基础。
而收费的教程比较有权威和全面的是parrot录制的视频教程,有:parrot主讲《Quest3d系列教程》10小时视频教程、《Quest3d系列》10小时教程(不是书籍)、parrot主讲《玄武招商》7.5小时教程(不是书籍)、parrot主讲《Quest3d大揭秘系列教程之boat Visualization》。这些收费的视频教程一方面内容很全,比如在parrot主讲《Quest3d系列教程》10小时视频教程中,它的内容就包括基础界面、模型贴图、漫游控制、逻辑程序、逻辑强化练习、界面定制、灯光阴影、动画控制、动画技巧练习、粒子系统、角色动画、For循环与数组、内置Shader、种植系统、有限状态机、寻径、实时反射、全局特效、声音控制、动态加载等很多方面的知识,包括“Quest3d软件中撤销(undo)的问题”都有解决答案。但是另一方面这样的视频课程又是很昂贵的。所以现在整体而言,Quest3d方面的视频资源还是很匮乏的。
Quest3d的论坛资源在网上则比较多样化,论坛比较活跃和资源较多的网站有很多,比如Quest3d论坛-建筑可视化虚拟现实、Quest3d资讯作品教程-SketchUp中国论坛、Quest3d官方论坛等等。
2.基于Quest3d软件资源建设的思考
(1)学习形式多样化
仅仅学习Quest3d软件是不够的,Quest3d作为后期的组装加工固然重要,但是素材的收集、二维贴图制作、三维建模这些前期的准备是极其重要的,特别是3dsMax尤其重要,由于Quest3d自身不具备三维建模的能力,在Quest3d中复杂的三维模型都需要从外部导入,因此3dsMax这样的三维软件在虚拟现实设计过程中就发挥着很重要的作用,如果这些不会,就没有可以组装的原料,所以,如果要完成一个漫游类虚拟现实项目的设计与制作,则要学懂Photoshop和3dmax,没有这样的基础,Quest3d场景制作是不可能的。
(2)外部资源优化
首先,Quest3d现有资源应加强和外部一些软件的契合,比如在讲到3dmax或Maya中三维模型导入到Quest3d中,有些书籍中并没有讲清楚“插件从哪可以下载到”、“插件对于各种版本的要求是怎样的”,“.x和.cgr不同的保存格式导入到Quest3d中效果实现哪个更好”,只是很笼统的让读者自己可以在“F1帮助”中下载(这只是针对正版软件),但是具体操作过程却并没有那么简单,需要自己好好琢磨。
其次,现有参考书籍中如果能够讲到贯穿于整本书中到底用的是什么版本的MAX和Quest3d,使用者用起来更加高效,因为不同的版本可能对插件和一些参数的设置会有不同的要求,有时即使按照这些书上的案例照着做,也没有实现最终的效果,有没有是版本的问题?而对于很新版本的比如Quest3d5.0有什么功能和进步之处,书籍中也鲜有提及,如果在讲解的同时能够结合最新的软件版本和功能进行比对,应该会更方便学习和使用。
(3)分享交流
在资源建设中所推荐的论坛中与学习者进行交流和分享,还是很受益的。论坛中的资源很多都是最新的,通过回答别人的疑问,或者提出问题,大家可以共同进步。所以笔者认为要想学到更多的Quest3d知识,就应该多多上论坛,和大家一起分享交流。
虚拟现实技术是教育信息化发展的一个趋势,通过对教学场景在虚拟现实中的三维构建,营造逼真的学习情境,可以更好地发挥教育信息化的作用,目前在中小学社团活动中,3D打印很受学生欢迎,3D打印技术本质上就是虚拟现实技术的延伸,它将学生奇特的想法变成现实,3D打印技术以虚拟现实技术为依托,在教学中的应用提高了学生的动手能力,促进了学生思维能力的进一步发展,相信在未来的几年,虚拟现实技术必将大面积走进中小学课堂,必将对现有教学产生深刻的影响和变革。
[1]高飞.虚拟现实应用系统设计与开发[M].北京:清华大学出版社,2012.
[2]刘光然.虚拟现实设计[M].北京:清华大学出版社,2011.
[3]柳喆俊.Quest3D 虚拟现实设计[M].上海:东方出版中心,2010.
[4]刘向群,吴彬.虚拟现实案例教程:基于Quest3D/VR-Platform/Virtools项目[M].北京:中国铁道出版社,2012.
[5]赵蔚,段红.虚拟现实软件研究[J].计算机技术与发展,2012(2):228-231.
[6]赵建民,何林知.基于Quest 3D虚拟漫游的探索与实践[J].浙江大学学报(自然科学版),2013(8):24-28.
[7]王济军,魏雪峰.虚拟实验的“热”现状与“冷”思考[J].中国电化教育,2011(13):12-15.
[8]李宏飞,廖子兴.虚拟现实工具概述[J].山东大学学报,2011(4):45-48.
[9]徐芹.虚拟现实世界中的教育模式探索[J].湖南师范大学学报,2012(5):109-111.
(编辑:鲁利瑞)
TP393
A
1673-8454(2017)14-0087-05